MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / insert_db

Method insert_db

class/process_task.py:634–680  ·  view source on GitHub ↗

@name 插入数据库 @param process_info_list list @return bool

(self, process_info_list, _time)

Source from the content-addressed store, hash-verified

632 return time.time() - _day * 86400
633
634 def insert_db(self, process_info_list, _time):
635 '''
636 @name 插入数据库
637 @param process_info_list list
638 @return bool
639 '''
640 if not process_info_list: return
641 all_top, cpu_top, disk_top, net_top, memory_top = self.get_top_list(
642 process_info_list)
643
644 with db.Sql().dbfile('system') as _sql:
645 if not _time:
646 _time = int(time.time())
647 _sql.table('process_top_list').insert({
648 'all_top':
649 dumps(all_top),
650 'cpu_top':
651 dumps(cpu_top),
652 'disk_top':
653 dumps(disk_top),
654 'net_top':
655 dumps(net_top),
656 'memory_top':
657 dumps(memory_top),
658 'addtime':
659 _time
660 })
661
662 # 删除过期数据
663 if not self.__insert_time: self.__insert_time = _time
664 if _time - self.__insert_time > 3600:
665 self.__insert_time = _time
666 _sql.table('process_top_list').where('addtime<?', self.get_expire_time()).delete()
667
668 # 释放一次磁盘空间
669 system_vacuum_file = "{}/data/system_vacuum.pl".format(public.get_panel_path())
670 do_vacuum = False
671 if not os.path.exists(system_vacuum_file):
672 public.writeFile(system_vacuum_file, str(int(time.time())))
673 do_vacuum = True
674 elif os.path.getmtime(system_vacuum_file) < time.time() - 86400 * 7:
675 public.writeFile(system_vacuum_file, str(int(time.time())))
676 do_vacuum = True
677 if do_vacuum:
678 _sql.execute('VACUUM', ())
679
680 _sql.close()
681
682 def get_top_list(sekf, process_info_list):
683 ''&#x27;

Callers 1

get_monitor_listMethod · 0.95

Calls 13

get_top_listMethod · 0.95
get_expire_timeMethod · 0.95
timeMethod · 0.80
writeFileMethod · 0.80
dbfileMethod · 0.45
insertMethod · 0.45
tableMethod · 0.45
deleteMethod · 0.45
whereMethod · 0.45
formatMethod · 0.45
existsMethod · 0.45
executeMethod · 0.45

Tested by

no test coverage detected