を使用しているとき、私はAMはDocker Swarm
で実行しているNodejs Koa
で書かれた複数のマイクロサービスを持っています。nodejsをシャットダウンmicroservice優雅ドッカースウォーム
KubernetesやSwarmのようなコンテナオーケストレーションツールは即座にサービスの規模を拡大/縮小できるため、未完成の実行プロセスを防ぐためにNodejsサービスを正常にシャットダウンすることに問題があります。以下は
は、私は考えることができる流れである:各ワーカー・プロセスにSIGNINT信号を送信
- 、サービスを縮小する際ドッキングウィンドウの群れ は、作業者に
SIGNINT
を送っていますか? 労働者
は、
はどのように私はすべての実行中のプロセスがダウン をシャット前に終了するのを待ち、新しいAPI 要求を停止することができ、信号、クリーンアップまたはフリーいかなる 使用されるリソースをキャッチし、そのプロセスを終了する責任がありますか?
参照から以下のいくつかのコード:
process.on('SIGINT',() => {
const cleanUp =() => {
// How can I clean resources like DB connections using Sequelizer
}
server.close(() => {
cleanUp()
process.exit()
})
// Force close server after 5secs, `Should I do this?`
setTimeout((e) => {
cleanUp()
process.exit(1)
}, 5000)
})