简体   繁体   English

如何在NodeJS中终止所有工作人员的工作?

[英]How to end all workers from master in NodeJS?

I need to end all workers if my db fails to connect... 如果我的数据库无法连接,我需要终止所有工作程序...

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

List all workers by using 通过使用列出所有工人

cluster.workers 集群工人

then use cluster.worker.kill() function to end them. 然后使用cluster.worker.kill()函数结束它们。

You might want to use cluster.disconnect() 您可能要使用cluster.disconnect()

Calls .disconnect() on each worker in cluster.workers. 在cluster.workers中的每个工作程序上调用.disconnect()。

When they are disconnected all internal handles will be closed, allowing the master process to die gracefully if no other event is waiting. 当它们断开连接时,所有内部句柄都将关闭,如果没有其他事件在等待,则允许主进程正常终止。

The method takes an optional callback argument which will be called when finished. 该方法带有一个可选的回调参数,该参数将在完成时被调用。

This can only be called from the master process. 这只能从主进程中调用。

There is also an optional argument passed to this function - callback <Function> which is called when all workers are disconnected and handles are closed. 还有一个可选参数传递给此函数- callback <Function> ,当所有工作程序都断开连接并且句柄关闭时,将调用该函数。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM