如何从任务中添加更多线程(并删除线程)到当前的多处理池(即celeryd是在CELERYD_CONCURRENCY = 10的情况下运行但是我想在运行中将其更改为CELERYD_CONCURRENCY = 15)?
有一个名为celery.concurrency.processes.TaskPool.Pool.grow的函数,但我不知道如何从正在运行的任务中调用它,或者它是否是正确的函数。
答案 0 :(得分:1)
阅读来源:
https://github.com/ask/celery/blob/master/celery/concurrency/processes/__init__.py
既有grow()
又有shrink()
,虽然后者似乎有点可疑。
你需要在某个地方保留对游泳池的引用,如果你只有一个游泳池,那就把它保持全局。
告诫海报:如果多处理实际上意味着运行多个单独的进程,那么当您尝试缩小或增长时,您可能已经处于子进程中,并且显然赢了“工作。