Celery 中的工作进程

Celery 中的工作进程

我有一个 CPU 密集型 Celery 任务,在其中一个任务中可以使用 joblib 进一步并行化。默认情况下,使用 celery 启动工作程序将创建一个池,其最大并发数等于 CPU/核心数(在我的情况下为 36)。

我的问题是,使用这种配置,是否意味着每个工作进程将只有 1 个核心可用,并且不会受益于 joblib 的并行化?或者当工作进程队列中没有其他任务时,它会使用所有核心。

例如:

@app.task  # picked by celery worker process
def a_task():
    algo = Algo(n_jobs=5)  # further parallelization in the task
    ....

相关内容