芹菜任务未在提供的开始时间启动



我有一个Django应用程序,它利用芹菜来处理用户计划的任务。我目前遇到一个问题,我为 PerodicTask 设置了开始时间,它不是在该特定时间启动,而是稍后的某个时间启动。

环境:

  • 芹菜 4.3
  • 姜戈 2.2
  • 蟒蛇 3.7
task = PeriodicTask(name="foo",task="bar_task",
start_time=DateTime5MinutesAhead, 
interval=EveryHourInterval)
task.save()

我希望任务在创建任务后的 5 分钟内首先运行,然后每小时运行一次。相反,它似乎在以后的某个任意点运行,完全忽略了start_time论点。

我弄错了start_time论点是为了什么吗?

我尝试过IntervalScheduleCrontabSchedule

而且似乎都没有在确切的开始时间开始。

奖励:我的发现中真正奇怪的是,如果我使用设置为每分钟IntervalSchedule它实际上确实可以正确启动并正确运行,但是如果我将其设置为其他任何内容,它就不再有效。

您需要将last_run_at设置为start_time-interval

task = PeriodicTask(name="foo",task="bar_task",
start_time=DateTime5MinutesAhead,
last_run_at=DateTime5MinutesAhead - timedelta(hour=1),
interval=EveryHourInterval)
task.save()

不确定这是错误还是功能,但对我来说效果很好,

参考: https://github.com/celery/django-celery-beat/issues/259

相关内容

  • 没有找到相关文章

最新更新