【问题标题】:Cron based scheduler in pythonpython中基于Cron的调度程序
【发布时间】:2014-09-28 23:08:07
【问题描述】:

我有一个每隔一小时运行一次的 python 应用程序,需要根据一些数据库配置执行一些计划任务。例如,一个配置可能是:

  • 每天 15:00 做 X
  • 每周一 8:00 做 Y

最多可以延迟一小时。

我可以自己实现,但我想知道是否有开箱即用的解决方案,例如 APScheduler,但不是一直运行。

【问题讨论】:

  • 如果你在 linux/unix 上,你会使用cron
  • @John1024 我知道,但我希望我的应用程序的用户能够自己安排任务。所以我需要将调度计划放在数据库中。
  • 您的软件能否包含读取数据库配置并相应执行的 cron 任务?许多应用程序只需在安装过程中将文件放入/etc/cron.hourly即可。
  • @John1024 谢谢。不幸的是,不,我不能那样做。我的应用程序是在云上运行的 Django 应用程序,因此我无权访问 cron 文件。我可以安排类似 cron 的任务,每 X 小时/分钟触发一次我的应用程序。

标签: python scheduled-tasks apscheduler


【解决方案1】:

APScheduler 似乎也是一个不错的选择,但如果您只想简单地调用您的 python 应用程序:

  Do X every day at 15:00
  Do Y every Monday at 8:00

为什么不让 cron 作业通过 chmod +x 使您的脚本可执行然后添加来运行您的脚本

     0 0 */2 * * /path/to/your/pyScript.py

调用-e 标志。

如果您有任何问题,请告诉我!

【讨论】:

  • 感谢您的回答。我需要将计划任务存储在数据库中,因此我的应用程序的用户将能够自己计划任务(它是一个 Django 应用程序)。
  • 在这种情况下,APScheduler 可能更容易以编程方式安排任务,但是根据用户功能在 linux-cron 中创建一行应该没有任何问题,我必须这样做在 Ruby 和 Java 中使用过几次,还不错。如果您有任何问题,请告诉我!
猜你喜欢
  • 2017-07-18
  • 2016-11-13
  • 1970-01-01
  • 2013-08-29
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
相关资源
最近更新 更多