如何使用调度程序每天同时运行python脚本?

时间:2017-01-24 01:56:24

标签: python scheduler

但这可能是一个普遍的问题, 我想知道的是: 在安排python脚本时(例如每天下午1:00),我想知道我们是否必须让脚本(或spyder之类的编辑器)始终“打开”。这意味着,我是否必须让python始终运行?我避免使用调度程序库,因为人们说python脚本没有被杀死,等待下一个任务。 到目前为止我一直在做的只是使用Windows Scheduler每天自动运行我的脚本(爬虫)(人们说这被称为'批处理过程'..)。但现在我必须在服务器端执行这些工作,而不是在我的本地工作。

因此,如何使用python调度程序库运行与Windows调度程序相同的python脚本?

2 个答案:

答案 0 :(得分:2)

您可以在linux中使用cron。我还使用cron在我的共享托管服务器上运行我的python脚本。如果您需要在服务器上安装python模块,则可能还需要使用virtualenv创建虚拟环境。根据我的经验,如果你的脚本有干净的退出,你的python脚本将被杀死或正确终止,所以你不必担心python脚本没有被杀死并消耗你的服务器资源:D

答案 1 :(得分:0)

我会推荐 systemd计时器。许多人使用 cron crontabs ,但它要求您的系统一天24小时运行,并且不容易“调试”。

我喜欢systemd的一个主要内容:

  • 所有systemd计时器事件都在systemd日志中小心记录。就像在cron工作的情况一样,很难检查你的cron工作在做什么,它可能变得一团糟。
  • systemd定时器是具有资源管理,IO CPU调度功能的系统服务。
  • 很容易使用它来启用/禁用/终止作业/等。只做:

    systemctl enable/disable/start/stop

  • 我喜欢的另一件事,如果你在不同的时区你安排系统日历和单调时间。还有许多有用的调试功能。

还有更多好的选择:

Jobber 是一个GO任务调度程序,也是一个比cron更强大的工具。它具有状态的作业执行历史记录,控制作业在失败后是否以及何时再次运行,并在每个作业无法运行时获得通知,或仅关于因重复失败而被禁用的作业。

Hcron 很好,并且有一些很好的注意事项,比如单独存储事件,每个事件都存放在自己的文件中,而不是全部存储在单个文件中,更多信息在这里:https://expl.info/display/HCRON/Home和文档是这里https://expl.info/display/HCRON/hcron+Guide

希望你会发现这有用。