Python中使用APSchedule和time.sleep()的区别
我正在创建一个脚本,这个脚本里有一个功能需要每隔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()
那么,哪种方法更好呢?不同方法的优缺点是什么?如果这个脚本将来会变成一个守护进程,这会影响选择吗?
1 个回答
4
APScheduler是否对你有帮助,主要看你的需求。使用APScheduler的人通常有更具体的要求,或者需要动态地添加或删除任务。
比如说,如果你的后台程序关掉了,而某个任务错过了截止时间,你想怎么处理呢?如果你需要这种高级的任务管理功能,那你就应该使用APScheduler。否则,你可以继续用time.sleep()来处理。