如何在准确的时间运行django-cron作业

时间:2012-04-11 07:21:00

标签: django cron django-cron

我不能在我的项目中使用芹菜,只能使用django-cron。 我需要每天执行2次任务:

  • 在美国东部时间晚上11:59。
  • ,时间是晚上11:59。

我可以这样做吗? 我发现只有RUN_EVERY(分钟或秒)变量。

1 个答案:

答案 0 :(得分:1)

我熟悉这个django-cron: https://github.com/andybak/django-cron

您可以将驱动django-cron的实际cronjob设置为仅在这些时间运行(如果您希望它运行其他作业但这将适用于您描述的用例,这会降低它的实用性)。在这种情况下,您的crontab条目应如下所示:

59 11,23 * * * /path/to/python /path/to/manage.py cronjobs

使用crontab条目,django cron每天只会在上午11:59和晚上11:59运行两次,所以即使你已经指定每分钟运行一个作业,它也只会在那些时间运行。如果cron-job因任何原因失败,则不会在接下来的12个小时内运行。

或者,您可以将作业设置为每12小时运行一次

HOUR * 12

运行一次之后,手动编辑数据库,说最后一次运行是在晚上11:59或上午(以较晚者为准),然后它将在那之后每12小时开始运行,所以它应该总是打到11:59。在这种情况下,如果作业失败,它可能会在12点或更晚的时候开始运行,因为它试图回收。

如果你使用的是与我刚才提到的不同的django-cron,那么其中一些想法可能适用,但也许不适用。如果您正在使用开头提到的那个,请确保您提取它的最新版本,我在5天前做出了承诺,这使得工作不会随着时间的推移而变化(即在61分钟而不是60分钟后运行)等......),他们在某些情况下。