【发布时间】:2021-08-08 00:04:33
【问题描述】:
我一直在使用 schedule 模块尝试在我的 python 代码中安排函数,但我认为我的用例超出了它的能力。
目前,我有 4 个函数希望按设定的时间表运行。 我想每小时运行一次 function_1,交替运行 function_2 和 function_3,每周运行一次 function_4。
我目前的工作安排如下:
schedule.every(1).hours.do(function_1)
schedule.every(2).hours.do(function_2)
schedule.every(3).hours.do(function_3)
schedule.every().monday.do(function_4_setup)
def function_4_setup()
logger.debug("Clearing Schedule to run function_4 on its own")
schedule.clear()
sleep(3600)
function_4()
logger.debug("Restarting All Jobs")
recreate_jobs() # re-adds function 1-3 to schedule
问题是这段代码会导致 function_2 和 function_3 在 12 小时、18 小时和 24 小时后同时运行或紧接着运行,这是我想避免的。
给你一个我期望的行为的例子:
- 00:00:function_1 和 function_2 运行
- 01:00:function_1 和 function_3 运行
- 02:00:function_1 和 function_2 运行
- 03:00:function_1 和 function_3 运行
...1 周后...
- 00:00 function_4 运行
- 01:00 function_1 & function_2 运行
我查看了APScheduler,但该库似乎也不适合我的用例。任何建议/帮助将不胜感激!
【问题讨论】:
标签: python cron scheduled-tasks apscheduler