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()
,尽管后者似乎一点点腥。
如果您只有一个池,请将其保持在全局范围内,否则您需要在某处保留对池的引用。
警告海报:如果多处理实际上意味着运行多个独立的过程,你可能已经是一个孩子的过程,当你试图缩小或放大,显然这是行不通的。