min*_*hee 4 fork memory-management multiprocessing celery
我目前使用Python的C扩展库,但它似乎有内存泄漏.在我运行的任务celeryd使用这个C扩展库做一些事情,并celeryd在一个小时后吃掉大量内存.我无法修补这个C扩展库有很多原因,但我想在Celery中为每个任务分叉进程.芹菜有这样的选择吗?
您可以使用CELERYD_MAX_TASKS_PER_CHILD选项或--maxtasksperchild芹菜开关.
在每个任务后重新启动工作进程:
CELERYD_MAX_TASKS_PER_CHILD=1
https://celery.readthedocs.org/en/latest/userguide/workers.html#max-tasks-per-child-setting