2012-04-11 104 views
0

我不能在我的项目中使用芹菜,只有django-cron。 我需要每天运行我的任务2次:如何在准确的时间运行django-cron作业

  • at 11:59 A.M.
  • at 11:59 P.M.

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

+0

编号下面的答案没有用。但仅限于我的情况。我无法在工作PC上安装cron。我需要一个包装。 Crosplatform。 – SkyFox 2012-04-12 10:49:28

+0

我不认为有跨平台cron解决方案。在一个nix系统上,你可以使用cron,而我不确定在Windows上有什么作用。希望别人有一个想法! – joshcartme 2012-04-12 16:16:10

回答

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或AM(取在未来),它将在那个时间之后每12小时开始运行一次,所以它应该总是在11:59完成。在这种情况下,如果工作失败,它可能会在12:00或更晚时候开始运行,因为它试图恢复。

如果您使用的是与我在开头提到的不同的django-cron,那么其中一些想法可能适用,但可能不适用。如果您使用的是开头提到的那个,请确保您拉入最近的版本,我在5天前提交了一份承诺,这使得作业不会随着时间漂移(即在61分钟而不是60分钟后运行)等等......),他们在某些情况下。

相关问题