Forking processes for every task in Celery

孤街浪徒 提交于 2019-12-06 06:18:47

问题


I currently use a C extension library for Python, but it seems to have memory leaks. Tasks that are run on my celeryd do something using this C extension library, and celeryd eats a lot of memory about a hour later. I cannot patch this C extension library in many reasons, but instead I want to fork processes for every task in Celery. Are there any such options for Celery?


回答1:


You can use CELERYD_MAX_TASKS_PER_CHILD option or --maxtasksperchild celeryd switch.

To restart worker processes after every task:

CELERYD_MAX_TASKS_PER_CHILD=1

https://celery.readthedocs.org/en/latest/userguide/workers.html#max-tasks-per-child-setting



来源:https://stackoverflow.com/questions/8846978/forking-processes-for-every-task-in-celery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!