父进程重新启动后,还原对分离的子进程的引用

时间:2019-01-27 01:24:44

标签: node.js process child-process

我有一个Node.js脚本,它可以分叉这样的另一个进程:

// parent.js

const { fork } = require('child_process');

const child = fork('child.js', [], { detached: true });

child.pid // e.g. 1234

child.send({ test: 'hello world!' })

对于每个文档,detached: true使得子进程有可能在父级退出后继续运行,这正是我想要的。

即使父进程崩溃或重新启动(或者有多个进程需要与同一个子进程一起使用),子进程也将保持活动状态。将子进程视为单实例守护程序。

我知道,只要子进程正在运行,父进程就绝不会崩溃或停止,但是我的程序中不是这种情况;子进程运行时,父进程将停止。

只要父进程正在运行,此方法就很好用。我遇到的问题是家长重新启动时。用简单的英语来说,我该如何告诉父进程:

  

嘿,父母,这是上次在pid:1234下运行的过程。我不希望您派生一个新的过程。您可以将邮件发送到现有邮件吗?

为澄清起见,问题不在于持久保留pid。这是关于获得一个新的类似于ChildProcess的对象,该对象引用了旧的对象。

如果由于流程的性质,我在这里所做的任何事情在架构上是错误的/不可能的,那么您还建议如何做?例如两台服务器通过TCP套接字进行通信?

0 个答案:

没有答案