我正在创建一个脚本,其功能应该每X小时运行一次。
这样做的一种方式似乎是time.sleep()。 示例来自this Stackoverflow question。
import time
while True:
print "This prints once a minute."
time.sleep(60) # Delay for 1 minute (60 seconds)
另一种方式似乎是APScheduler。 示例来自this documentation。
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()
这样做的最佳方式是什么? 不同方式的优点和缺点是什么? 如果更改了任何内容,该脚本将在以后成为守护进程。
答案 0 :(得分:3)
APScheduler是否为您带来任何好处取决于您的要求。使用APScheduler的人通常有更多特定要求或需要动态添加/删除作业。
例如,如果您的守护程序被关闭且任务错过了截止日期,那么您希望如何处理?如果您需要任何此类高级任务管理功能,那么您将需要使用APScheduler。否则,你可以坚持使用time.sleep()。