Celery 在调度的事件中发送父工作进程的进程 ID,而不是工作进程

问题描述 投票:0回答:1

我正在开发一个 celery 监控工具。为此,我正在记录来自

celery.events.receiver.EventReceiver
的事件。

正在发送的数据如下所示(为简洁起见,删除了不必要的信息)

{... "pid": 26342, "type": "task-received", ...}
{... "pid": 26342, "type": "task-started", ...}

现在,问题是运行代码的实际工作池进程具有 pid

26391
。 pid 26342是父worker的。

我的问题是,这是一个错误还是出于监控目的而故意?如果是故意的,谁能解释一下原因吗?

注意:使用默认预分叉池。

通常情况下,我会期望池进程 pid 而不是父进程 pid。

celery python-billiard
1个回答
0
投票

主 Celery 工作进程管理工作进程,所以基本上主工作进程就是您所说的“池进程”。

© www.soinside.com 2019 - 2024. All rights reserved.