7
如何從任務內添加更多線程(並刪除線程)到當前多處理池(即celeryd以CELERYD_CONCURRENCY = 10運行,但我想更改它即時到CELERYD_CONCURRENCY = 15)?向芹菜中的工作池動態添加/刪除線程
有一個叫做celery.concurrency.processes.TaskPool.Pool.grow的函數,但我不知道如何從正在運行的任務調用它,或者它是否是正確的函數。
如何從任務內添加更多線程(並刪除線程)到當前多處理池(即celeryd以CELERYD_CONCURRENCY = 10運行,但我想更改它即時到CELERYD_CONCURRENCY = 15)?向芹菜中的工作池動態添加/刪除線程
有一個叫做celery.concurrency.processes.TaskPool.Pool.grow的函數,但我不知道如何從正在運行的任務調用它,或者它是否是正確的函數。
閱讀來源:
https://github.com/ask/celery/blob/master/celery/concurrency/processes/__init__.py
有兩個grow()
和shrink()
,儘管後者似乎一點點腥。
如果您只有一個池,請將其保持在全局範圍內,否則您需要在某處保留對池的引用。
警告海報:如果多處理實際上意味着運行多個獨立的過程,你可能已經是一個孩子的過程,當你試圖縮小或放大,顯然這是行不通的。