4
我目前使用Python的C擴展庫,但它似乎有內存泄漏。在我的celeryd
上運行的任務使用此C擴展庫進行了一些操作,celeryd
在大約一個小時後耗盡了大量內存。我無法修補這個C擴展庫,原因很多,但是我想爲Celery中的每個任務分叉處理。芹菜有這樣的選擇嗎?Celery中每個任務的分叉進程
我目前使用Python的C擴展庫,但它似乎有內存泄漏。在我的celeryd
上運行的任務使用此C擴展庫進行了一些操作,celeryd
在大約一個小時後耗盡了大量內存。我無法修補這個C擴展庫,原因很多,但是我想爲Celery中的每個任務分叉處理。芹菜有這樣的選擇嗎?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
什麼是分叉爲每一個新任務的潛在的不利因素? – grokpot 2017-01-19 14:44:53