Javascript 从子进程(NodeJS)调用setTimeout

Javascript 从子进程(NodeJS)调用setTimeout,javascript,node.js,Javascript,Node.js,我想使用子进程通过setTimeout调用函数,该子进程可能在setTimeout发生之前退出 1我假设如果子进程调用函数,即使它是在外部定义的,如果子进程退出,setTimeout将被取消。这是正确的吗 2如果是这样,让子进程向父进程发送信号以执行setTimeout是可行的,还是有更好的方法来实现这一点 谢谢 我不确定自己是否完全理解,但让我提供一些可能适用的链接和示例 作为子进程模块和集群的一部分,可以在主进程和子进程之间发送和接收消息 例如,在子进程向主进程发送消息时清除setTimeo

我想使用子进程通过setTimeout调用函数,该子进程可能在setTimeout发生之前退出

1我假设如果子进程调用函数,即使它是在外部定义的,如果子进程退出,setTimeout将被取消。这是正确的吗

2如果是这样,让子进程向父进程发送信号以执行setTimeout是可行的,还是有更好的方法来实现这一点


谢谢

我不确定自己是否完全理解,但让我提供一些可能适用的链接和示例

作为子进程模块和集群的一部分,可以在主进程和子进程之间发送和接收消息

例如,在子进程向主进程发送消息时清除setTimeout:

var cp = require('child_process');
var child = cp.fork(__dirname + '/sub.js');

var timer = setTimeout(function(){
  console.log('timed out'); 
}, 5000);

child.on('message', function(msg) {
  console.log(msg);
  clearTimeout(timer);
});
孩子

setTimeout(function() {
  console.log('finished doing some long task');
  process.send({ status: 'done' });
}, 3000); // set this to something larger than 5000ms to see the timeout

您可能还对子进程执行类似操作的事件和事件感兴趣。

感谢您在这方面的关注。我主要感兴趣的是进程结束后调用的setTimeout的行为。我假设它没有运行,所以我试图找到一种方法,让子进程调用setTimeout,当setTimeout需要运行时,不管子进程是否存在,它都会执行。Hmm。。所提供的示例显示了如何运行setTimeout,而不管是否存在子项,但关于在子项退出后保留从子项中启动的setTimeout,我认为这是不可能的,因为运行计时器的进程不再运行。唯一的办法是在某个过程中,父母或其他孩子,这仍然存在。这就是我所想的。所以,现在我想知道的是,我是否可以通过向父级发送消息来实现这一点,然后父级执行setTimeout。有比这更好的方法吗?我已经概述了这种方法,我不知道有更好的方法,但这并不意味着什么。