python 定时任务线程检测和启动的实现
背景 : 使用from threading import Timer 定时任务时有时候莫名其妙运行几天后的线程停止也找到什么问题。
代码 :
#需要检测的线程对象
timers_name = [pid_monitor_timers,xxxx,xxxx]
#获取所有线程对象
thread_object = threading.enumerate()
print(thread_object)
name_list = []
for i in thread_object:
name_list.append(i.name)
logs.info(“检测正在运行的线程:” + str(name_list))
for i in timers_name:
print(i.name)
#判断定时线程是否在运行
if i.name not in name_list:
logs.info(“正在启动服务:” + str(i.name))
try:
threading.Thread(target=i).start()
except Exception as E:
logs.error(“服务” + str(i.name) + “启动失败” + str(E))
else:
logs.info(str(i.name) + “启动成功!”)
感受:threading import Timer 虽然这玩意不好使,但是轻量。。。。