Python:运行 按计划运行,不会重叠某些执行
Python: run functions on a schedule without overlapping some execution
我一直在使用 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 运行ning 同时或在 12 小时 18 小时和 24 小时后紧接着一个,我会喜欢回避。
举例说明我所期望的行为:
- 00:00: function_1 & function_2 运行s
- 01:00: function_1 & function_3 运行s
- 02:00: function_1 & function_2 运行s
- 03:00: function_1 & function_3 运行s
... 1 周后...
- 00:00 function_4 运行s
- 01:00 function_1 & function_2 运行s
我查看了 APScheduler,但该库似乎也不适合我的用例。任何 advice/help 将不胜感激!
与其分别安排功能 2 和 3,我建议制作一个可以触发这 2 个功能的功能,而不是 运行 每小时执行一次。例如:
boolean = True
def flip_funcs():
global boolean
boolean = not boolean
[function_2, function_3][boolean]()
schedule.every(1).hours.do(flip_funcs)
您是否尝试过对该函数进行多线程处理?
https://www.tutorialspoint.com/python/python_multithreading.htm
这可能是您正在寻找的
我一直在使用 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 运行ning 同时或在 12 小时 18 小时和 24 小时后紧接着一个,我会喜欢回避。
举例说明我所期望的行为:
- 00:00: function_1 & function_2 运行s
- 01:00: function_1 & function_3 运行s
- 02:00: function_1 & function_2 运行s
- 03:00: function_1 & function_3 运行s
... 1 周后...
- 00:00 function_4 运行s
- 01:00 function_1 & function_2 运行s
我查看了 APScheduler,但该库似乎也不适合我的用例。任何 advice/help 将不胜感激!
与其分别安排功能 2 和 3,我建议制作一个可以触发这 2 个功能的功能,而不是 运行 每小时执行一次。例如:
boolean = True
def flip_funcs():
global boolean
boolean = not boolean
[function_2, function_3][boolean]()
schedule.every(1).hours.do(flip_funcs)
您是否尝试过对该函数进行多线程处理? https://www.tutorialspoint.com/python/python_multithreading.htm 这可能是您正在寻找的