我将 Celery 与我的 Django 应用程序一起使用,并且在大多数情况下,事情进展顺利。作为参考,这是我的 celerybeat 配置:
CELERYBEAT_SCHEDULE = {
'update-every-5-secs': {
'task': 'app1.tasks.task1',
'schedule': timedelta(seconds=5),
'args': (),
},
'archive-request-records-every-hour': {
'task': 'app0.tasks.archive_requests',
'schedule': crontab(minute=0, hour='*/1'),
'args': (),
},
'push-ios-background-every-5-minutes': {
'task': 'app0.tasks.push_ios_background',
'schedule': crontab(minute='*/5'),
'args': (),
},
}
我注意到每 1-2 天,它会随机完全不同步。例如,每 5 分钟运行一次的最后一个条目通常运行如下:1:00、1:05、1:10、1:15 等。
这是它今天早上所做的:7:30、7: 35、7:40、7:46、7:50、8:03、8:16、8:32、8: 50、9 : 13、9: 21, 9:26, 9:29, 9:32, 9:38, 9:47, 9:59, 10:08, 10:22, 10:24, 10:24, 10:24, 10:24, 10:25, 10:25, 10:25, 10:25, 10:25, 10:25, 10:25, 10:25, 10:25, 10:25, 10:25, 10:26, 10: 26、10 :30、10:35、10:40...
它几乎看起来不同步,试图一次弥补它,然后重新恢复。起初我以为这只是侥幸,但它发生得太频繁了。我有这方面的关键任务流程,需要按时运行。
有什么办法可以防止这种情况发生吗?似乎人们在 Celery 上取得了巨大的成功,所以我真的很困惑。