[eggjs/egg]使用多进程启动时,能否worker能否返回对应的进程编号

2025-11-04 145 views
1

我们业务需要在对应的进程中获取当前的进程编号。 例如启动了4个进程,对应的进程输出是0、1、2、3 (类似pm2的 process.env.NODE_APP_INSTANCE)

回答

6

获取编号的场景是什么?

worker 是对等的,不应该区分他们的编号的。

且如果某个 worker 崩溃了,会自动重启一个新的,它的 id 是不一样的。

9

场景比较复杂不是一两句解释清楚。

所以我需要的是编号 不是id , id我可以自己获取对应的进程pid

我看了一下源码 其实 egg 也有一个对应的 worker 顺序,那是否能暴露出来让开发者使用。

9

egg 没有 worker 顺序这个概念,你截图的那个就是一个 worker count。

worker 是并发 fork 出来的,先 fork 出来的,不一定会先 ready。

2

我的场景是这样的,我要监控每一个进程的情况。

例如: 开了4个进程,暂时我先给它们编号为0,1,2,3。 对应的pid是 101,102,103,104。 然后某原因,编号1 进程重启了。 我(开发者)要知道是编号1的进程重启了。

不知道我表达清楚了没有。

1

其实只需要知道对应的 PID 重启了。 你可以参考下 AliNode 的做法。

5

通过 cluster 模块可以取 workId

6

好的 我了解下 谢谢了~