celery:max_tasks_per_child,不重新启动?

时间:2018-08-20 01:15:48

标签: celery django-celery

我将celery v4.20与Django结合使用,我试图控制Heroku上的任务的内存占用量。为此,我在settings.py中设置了以下内容:

CELERY_WORKER_MAX_TASKS_PER_CHILD = 5

在生产现场,一切似乎都正常。但是,当我在本地运行celery worker(localhost,Pycharm)时:

celery -A proj worker -l info

将发生的情况是,每个ForkPoolWorkers将执行5个任务,然后停止。停止是指完全停止,它们不会重新启动。我以为芹菜代替了那些童工,但似乎无限期地杀死了他们。

当我退出工作进程并自己重新启动它时,它将继续处理另外5个任务,然后再次死亡。

这是预期的行为吗?为什么在生产中没有看到这个问题?

0 个答案:

没有答案