我有一个周期性任务,本应每天运行一次,但目前每天运行两次,我不知道为什么。第二次运行发生在预期运行几毫秒之后。
我的定期任务指定了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调度程序,而不是一些第三方实现。