芹菜杀死进程

时间:2016-09-06 13:42:50

标签: python multiprocessing celery

我使用芹菜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

为什么这样做?这个错误吗?

1 个答案:

答案 0 :(得分:1)

取决于CELERY_MAX_TASKS_PER_CHILD,即工作人员在回收之前应完成的任务数量,默认为无限制。

http://docs.celeryproject.org/en/latest/configuration.html#std:setting-CELERYD_MAX_TASKS_PER_CHILD

因此,您的芹菜配置可能将此限制设置为较低的数字,因此您的工作人员正在回收。 您可以在芹菜stats中查看更多信息。