2

我正在创建一个脚本,该脚本具有应该每 X 小时运行一次的功能。

一种方法似乎是使用time.sleep()。取自这个 Stackoverflow 问题的示例。

import time 
while True:
    print "This prints once a minute."
    time.sleep(60)  # Delay for 1 minute (60 seconds)

另一种方式似乎是使用APScheduler。取自本文档的示例。

from apscheduler.scheduler import Scheduler

sched = Scheduler()

@sched.interval_schedule(hours=3)
def some_job():
    print "Decorated job"

sched.configure(options_from_ini_file)
sched.start()

这样做的最佳方法是什么?不同方式的优缺点是什么?如果这改变了任何东西,该脚本稍后将成为一个守护进程。

4

1 回答 1

3

APScheduler 是否给您带来任何好处取决于您的要求。使用 APScheduler 的人通常有更具体的要求或需要动态添加/删除作业。

例如,如果你的守护进程被关闭并且任务错过了它的最后期限,你想如何处理它?如果您需要任何此类高级任务管理功能,那么您将需要使用 APScheduler。否则,您可以坚持使用 time.sleep()。

于 2014-04-01T18:12:38.803 回答