【发布时间】:2023-08-20 00:51:01
【问题描述】:
我正在尝试使用如下时间表:
def job():
my code
schedule.every().day.at("06:03").do(job)
schedule.every().day.at("09:56").do(job)
while True:
schedule.run_pending()
sleep(1)
我的工作不可能需要 1 到 10 个小时才能完成。
我遇到的问题是这样的:
基本上,当第一个作业运行时(在 06:03),如果作业需要大约 10 个小时,那么当它结束时它会再次启动,因为 schedule 会运行它丢失的所有作业(在这种情况下它错过了作业在 09:56,因此它运行)。
但是我想要的是,如果作业需要很长时间,那么它丢失的计划不会立即运行,而是必须从下一个计划重新开始(在示例中为 06:03)。简单来说,如果错过了一个调度,就需要清理“调度队列”,从下一个调度的时间重新开始。不需要运行所有错过的预定时间。
【问题讨论】:
标签: python scheduled-tasks schedule