Pythonic在某个时间执行的方式

时间:2014-07-14 15:53:19

标签: python daemon

我已经写了一个小守护进程来执行一些每天计算的任务(每天都不同)。什么是最pythonic的方式,以便在我计算执行任务的时间之后守护进程坐下并等到那个时间?

由于每天都在改变时间,Cron是不可能的,这是简单计算时间然后在这段时间内一直睡觉的最好方法吗?

3 个答案:

答案 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()