子进程如何与父进程通讯?
发布于 2年前 作者 majong 1362 次浏览

请问,用cluster创建多个worker进程,每个worker都是一个listen http端口来处理http请求,当收到一个特定的请求时,想向cluster或当前进程的父进程发送消息或事件,有什么办法吗?

6 回复

我的目的是想在应用有新的版本或补丁发布时,退出nodejs,更新文件然后再次启动nodejs。

好像一个进程发出的事件只有它自己能收到,如何能让其他进程收到呢?比如,worker进程发一个事件给master.

send()

看看文档中有例子。

我是想在其他模块中发送事件或消息, 例如:一个http request来的时候.

@majong 有区别么?你看了文档吗?

如果你是再用node的cluster, master和worker通过process.send的api来传递消息。 再cluster中, worker和master是可以传递消息的, 原理是master再spawn一个worker后会创建pipe共享与worker和master之间。

如果lsof一个进程, 你会发现有不知名的pipe文件出现, 这就是进程间消息的通道。

回到顶部