【发布时间】:2015-08-23 18:16:44
【问题描述】:
我想每天在特定时间安排一项工作(运行 python 脚本),直到达到特定日期。 研究了很多 Pythonic 调度程序,我认为 APScheduler 是解决这个问题的好选择。 这是一个使用 APScheduler 启动作业并在指定日期后每两小时执行一次的示例 sn-p。
from datetime import datetime
from apscheduler.scheduler import Scheduler
# Start the scheduler
sched = Scheduler()
sched.start()
def job_function():
print "Hello World"
# Schedule job_function to be called every two hours
sched.add_interval_job(job_function, hours=2)
# The same as before, but start after a certain time point
sched.add_interval_job(job_function, hours=2, start_date='2010-10-10 09:30')
如何达到同样的效果并有一个不应执行作业的上限日期? 任何围绕 APScheduler 内部和外部的建议都非常受欢迎。 提前致谢。
【问题讨论】:
-
2010 年已经发生了
-
我想说这可能会更好地由系统而不是 python 脚本来解决
-
一个 cron 任务?如果脚本可以安排作业会更好,这样就需要更少的人工干预:) 有什么建议吗,@RyanHaining?
-
编写一个调用函数的python脚本并不难,然后等待两个小时,然后检查日期(如果为时已晚则退出),然后再次调用该函数。我担心的是,如果不重新启动 python 脚本,您将无法更新 python 或任何正在使用的代码,您必须处理并从发生的任何异常中恢复,并且您仍然需要系统中的某些内容才能运行每次系统重新启动时的脚本。
-
我肯定会为此使用 cron。您不必担心流程会持续运行。您不必监视它或其他任何东西。只需让 cron 每天运行一次您的脚本,并在最后一天,从 cron 中删除条目或重命名脚本,使其不再运行。
标签: python