动态添加/删除线程到芹菜中的工作池

时间:2011-08-05 12:29:25

标签: python celery

如何从任务中添加更多线程(并删除线程)到当前的多处理池(即celeryd是在CELERYD_CONCURRENCY = 10的情况下运行但是我想在运行中将其更改为CELERYD_CONCURRENCY = 15)?

有一个名为celery.concurrency.processes.TaskPool.Pool.grow的函数,但我不知道如何从正在运行的任务中调用它,或者它是否是正确的函数。

1 个答案:

答案 0 :(得分:1)

阅读来源:

https://github.com/ask/celery/blob/master/celery/concurrency/processes/__init__.py

既有grow()又有shrink(),虽然后者似乎有点可疑。

你需要在某个地方保留对游泳池的引用,如果你只有一个游泳池,那就把它保持全局。

告诫海报:如果多处理实际上意味着运行多个单独的进程,那么当您尝试缩小或增长时,您可能已经处于子进程中,并且显然赢了“工作。