我已经写了一个小守护进程来执行一些每天计算的任务(每天都不同)。什么是最pythonic的方式,以便在我计算执行任务的时间之后守护进程坐下并等到那个时间?
由于每天都在改变时间,Cron是不可能的,这是简单计算时间然后在这段时间内一直睡觉的最好方法吗?
答案 0 :(得分:1)
cron如何定期调用python脚本,python脚本决定是执行任务还是根据规则退出?
答案 1 :(得分:0)
如果你不反对让这个过程不断运行,那么嵌套的while循环如何呢?第一个循环不断运行(允许您运行多天),并计算下次运行直到那时。然后输入第二个while循环,检查是否有时间执行任务。
while True:
next_time = calculate_next_runtime()
while datetime.datetime.now() < next_time: pass
execute_task()
或者您可以查看python-daemon package。
答案 2 :(得分:0)
while True:
next_time = calculate_next_runtime()
while time.time() < next_time: #in a loop just in case sleep wakes up early
time.sleep(next_time - time.time()) # just sleep ...
run_task()