【问题标题】:How to end all workers from master in NodeJS?如何在 NodeJS 中结束 master 的所有工作人员?
【发布时间】:2016-08-11 10:50:21
【问题描述】:

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

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
        }
    })
}

【问题讨论】:

    标签: node.js node-cluster


    【解决方案1】:

    您可能想使用cluster.disconnect()

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

    当它们断开连接时,所有内部句柄都将关闭, 如果没有其他事件发生,则允许主进程优雅地死掉 等待。

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

    这只能从主进程调用。

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

    【讨论】:

      【解决方案2】:

      使用

      列出所有工作人员

      cluster.workers

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-10
        • 1970-01-01
        • 1970-01-01
        • 2020-01-04
        • 2022-08-31
        相关资源
        最近更新 更多