def load_config():with open("rule.json", 'rb')as f:config = json.load(f)return configdef job(task_name, config, time_interval):# ... 通过task_name判断进行操作if task_name == 'get_data_times':passdef main():config = load_config()for task_name, task_value in config.items():# 循环配置文件中配置的时间 启动定时任务 多少秒运行一次if task_name.startswith('get_data') or task_name.startswith('get_internet'):time_interval = int(task_value.replace('s', ''))schedule.every(time_interval).seconds.do(job, task_name, config, time_interval)elif task_name.endswith('_time'):# 多少分钟运行一次time_interval = int(task_value.replace('min', ''))time_intervals = time_interval + 1schedule.every(time_interval).minutes.do(job, task_name, config, time_intervals)# 可以设置多个 时分秒 周月星期一到星期天 atdef run_jobs():while True:schedule.run_pending()time.sleep(1)thread = threading.Thread(target=run_jobs)thread.start()if __name__ == '__main__':import django, osos.environ.setdefault("DJANGO_SETTINGS_MODULE", "QsManagement.settings")django.setup()from app01.logger import loggerfrom app01.models import ComputerStatus, AlarmInfo, InterNetSpeed, WindowsError, ProductionLine, Machine, MachineTypefrom app01.methods import get_ipmain()
json配置文件 通过配置文件设置阈值,到达指定阈值报警
{"get_data_times": "3min","get_internet_times": "3min","get_windows_error_time": "3min","cpu_time" : "1min","cpu_rate" : "90%","memory_time" : "1min","memory_rate" : "75%","gpu_time" : "1min","gpu_rate" : "50%","disk_times": "3min","C_disk_space": "50G","D_disk_space": "30G","E_disk_space": "50G","F_disk_space": "50G","G_disk_space": "50G","cpu_temperature": "50度","temperature_time": "1min","internet_speed": "200ms","internet_time" : "1min"}