调度python,作业保持运行

2024-03-28 13:34:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我的日程安排如下:

def job():
   my code

schedule.every().day.at("06:03").do(job)
schedule.every().day.at("09:56").do(job)
schedule.every().day.at("13:47").do(job)
schedule.every().day.at("17:15").do(job)
schedule.every().day.at("20:34").do(job) 
schedule.every().day.at("23:46").do(job)
schedule.every().day.at("02:57").do(job)

while True:
   schedule.run_pending()
   sleep(1)

然而,这项工作有时需要1小时,有时需要10小时。当作业耗时最长(10小时)时,问题就会出现。一旦它结束,日程安排似乎决定再次运行它在这10小时内丢失的所有作业

我怎样才能解决这个问题

通常,当布尔值变为真时,作业需要睡眠10小时,否则,如果布尔值为假,作业需要大约1小时。是否可以通过如下调整无限循环来解决此问题

while True:
   if my_boolean == True:
      sleep(10*60*60)
      my_boolean == False
   else:
      schedule.run_pending()
      sleep(1)

Tags: runtruemy作业jobsleepdoat