Python中使用APSchedule和time.sleep()的区别

3 投票
1 回答
1860 浏览
提问于 2025-04-17 23:57

我正在创建一个脚本,这个脚本里有一个功能需要每隔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()来处理。

撰写回答