如何在NodeJS中结束所有来自master的工作人员?

时间:2016-04-19 10:13:06

标签: node.js node-cluster

如果我的数据库无法连接,我需要结束所有工作人员......

if (cluster.isMaster) {
    mongoose.connect(config.db.path, function(err) {
        if (err) {
            logger.error('Can\'t connect to database')
            // kill all workers here
            process.exit()
            return
        }
    })
}

2 个答案:

答案 0 :(得分:0)

使用

列出所有工人

cluster.workers

然后使用cluster.worker.kill()函数结束它们。

答案 1 :(得分:0)

您可能想要使用cluster.disconnect()

  

在cluster.workers中的每个worker上调用.disconnect()。

     

断开连接后,所有内部手柄都将关闭,   如果没有其他事件,则允许主进程优雅地死亡   等待。

     

该方法采用一个可选的回调参数,该参数将被调用   完成后。

     

这只能从主进程调用。

还有一个可选参数传递给此函数 - callback <Function>,当所有工作程序断开连接并且句柄关闭时,将调用该参数。