当芹菜击败发送一个到期任务时,为什么主进程收到三个不同的任务?

2024-04-20 11:43:18 发布

您现在位置:Python中文网/ 问答频道 /正文

Python 3.6.5芹菜v4.2.1, 如何解决当芹菜拍发一次到期任务时,主进程收到三个任务? 芹菜节拍:

CELERYBEAT_SCHEDULE = {
    'stats-every-midnight': {
        'task': 'tasks.stats.stats',
        'schedule': crontab(minute=0, hour=0)
    }
}

日志:

[2020-12-15 00:00:00,079: INFO/Beat] Scheduler: Sending due task stats-every-midnight (tasks.stats.stats)
[2020-12-15 00:00:00,084: INFO/MainProcess] Received task: tasks.stats.stats[cc9206a0-228d-4eeb-8e04-1137209beb7c]  
[2020-12-15 00:00:00,098: INFO/MainProcess] Received task: tasks.stats.stats[46f448f1-41d1-4cad-803e-89b3f25bcf11]  
[2020-12-15 00:00:00,102: INFO/MainProcess] Received task: tasks.stats.stats[54ef61ef-5f2e-49ea-b7af-84da8e12ee47]  

Tags: infotask进程statstasks芹菜schedulemainprocess
1条回答
网友
1楼 · 发布于 2024-04-20 11:43:18

如果您有3个芹菜工人,他们都是从类似celery -A <app> worker -B ...的东西开始的,这基本上会启动3个单独的调度器,那么就可能发生这种情况。人们经常犯这样的错误。。。建议:不要在开始芹菜加工时嵌入beat过程(使用-B选项)。此选项已添加到芹菜中,以便于开发。它从未打算用于生产

相关问题 更多 >