在Celery任务中,数据库调度程序是否足够,或者我是否也需要指定run_every属性



我有一个周期性任务,本应每天运行一次,但目前每天运行两次,我不知道为什么。第二次运行发生在预期运行几毫秒之后。

我的定期任务指定了run_every属性:

run_every=crontab(小时=1,分钟=1(

但在我的设置文件中,指定了数据库调度程序:

CELERYBEAT_SCHEDULER='djcele.schedulers.DatabaseScheduler'

此外,在数据库中,还有带有任务名称及其crontab时间表的表。例如,我们有一个名为djcele_crontabschedule的表,它还指定相同的任务应该在凌晨1:01运行

这会不会导致我的任务每天运行两次?

我从不使用run_every。。。下面是我使用的beatconfig.py文件中的一个示例:

beat_schedule = {
'company-data-report': {
'task': 'report.company_data_report',
'schedule': crontab(minute=0, hour=7),
'args': [],
'options': {'expires': 120*60}
},
etc

此特定任务每天在指定时间运行。我们使用默认的Celery调度程序,而不是一些第三方实现。

相关内容

  • 没有找到相关文章

最新更新