worker.disconnect()
历史
版本 | 变化 |
---|---|
v7.3.0 | 此方法现在返回对 |
v0.7.7 | 添加于:v0.7.7 |
参数
- 返回: <cluster.Worker> 对
worker
的引用。
在worker中,该函数将关闭所有服务器,等待这些服务器上的'close'
事件,然后断开IPC通道。
在主节点中,一条内部消息被发送到工作线程,导致它自己调用.disconnect()
。
导致设置.exitedAfterDisconnect
。
服务器关闭后,它将不再接受新的连接,但任何其他侦听工作人员都可以接受连接。现有的连接将被允许照常关闭。当不再存在连接时,请参阅
,通往工作人员的 IPC 通道将关闭,允许其正常终止。server.close()
以上仅适用于服务端连接,客户端连接不会被worker自动关闭,disconnect也不会等他们关闭后再退出。
在worker中,存在process.disconnect
,但不是这个函数;它是
。disconnect()
因为长期存在的服务器连接可能会阻止工作人员断开连接,所以发送消息可能很有用,因此可以采取特定于应用程序的操作来关闭它们。如果在一段时间后没有发出 'disconnect'
事件,则实现超时、杀死工作人员也可能很有用。
if (cluster.isPrimary) {
const worker = cluster.fork();
let timeout;
worker.on('listening', (address) => {
worker.send('shutdown');
worker.disconnect();
timeout = setTimeout(() => {
worker.kill();
}, 2000);
});
worker.on('disconnect', () => {
clearTimeout(timeout);
});
} else if (cluster.isWorker) {
const net = require('node:net');
const server = net.createServer((socket) => {
// Connections never end
});
server.listen(8000);
process.on('message', (msg) => {
if (msg === 'shutdown') {
// Initiate graceful close of any connections to server
}
});
}
相关用法
- Node.js Worker.isMainThread用法及代码示例
- Node.js Worker.exitedAfterDisconnect用法及代码示例
- Node.js Worker.send(message[, sendHandle[, options]][, callback])用法及代码示例
- Node.js Worker.isDead()用法及代码示例
- Node.js Worker用法及代码示例
- Node.js Writable Stream pipe事件用法及代码示例
- Node.js WritableStream用法及代码示例
- Node.js Writable Stream finish事件用法及代码示例
- Node.js Writable Stream unpipe事件用法及代码示例
- Node.js ServerHttp2Stream http2stream.pushStream(headers[, options], callback)用法及代码示例
- Node.js http2.Http2ServerRequest request.url用法及代码示例
- Node.js request.socket用法及代码示例
- Node.js assert.notEqual(actual, expected[, message])用法及代码示例
- Node.js tlsSocket.authorized用法及代码示例
- Node.js zlib.deflateRaw()用法及代码示例
- Node.js http.IncomingMessage message.rawHeaders用法及代码示例
- Node.js Console用法及代码示例
- Node.js GM transparent()用法及代码示例
- Node.js URL.protocol用法及代码示例
- Node.js http.Agent.reuseSocket(socket, request)用法及代码示例
- Node.js fs.filehandle.datasync()用法及代码示例
- Node.js socket.bind()用法及代码示例
- Node.js v8.getHeapSpaceStatistics()用法及代码示例
- Node.js http2session.destroyed用法及代码示例
- Node.js http.ServerResponse response.statusCode用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 Worker.disconnect()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。