首页 > 解决方案 > 安排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 小时内丢失的所有作业。

我该如何解决?

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

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

标签: pythonschedule

解决方案


推荐阅读