我使用芹菜3.1.23。
任务代码非常简单:
@app.task(bind=True, max_retries=None, default_retry_delay=settings.CELERY_RECONNECT_TIME)
def analize_text(self, **kwargs):
print 'test'
return 1
我启动芹菜这个命令:
芹菜 - 任务工作者--loglevel = info --concurrency = 4 -n analize_text -Q analize.analize_text -Ofair
所以,我使用4个CPU。 问题是芹菜会定期杀死工人并开始新的工作。新工人在日志和新PID中有新编号。 这是我的日志https://dpaste.de/N1Vk
为什么这样做?这个错误吗?
答案 0 :(得分:1)
取决于CELERY_MAX_TASKS_PER_CHILD,即工作人员在回收之前应完成的任务数量,默认为无限制。
http://docs.celeryproject.org/en/latest/configuration.html#std:setting-CELERYD_MAX_TASKS_PER_CHILD
因此,您的芹菜配置可能将此限制设置为较低的数字,因此您的工作人员正在回收。 您可以在芹菜stats中查看更多信息。