LoginSignup
1
5

More than 5 years have passed since last update.

PM2のクラスターモードでホットデプロイを行う

Last updated at Posted at 2018-07-08

node nginx pm2 expressのアプリケーションの基盤を作りたくて色々試しているのですが、クラスターモードでダウンタイム0でリロードが出来るということで試してみました。

補足

ホットデプロイに見えるだけでホットデプロイではない感じ、なんというのかわかりません。

Cluster Mode

2coreでやってるけどreloadをかけると同時にリロードしてしまって
アクセスすると一時的に404になってしまってうまくいかない。

色々巡ってたどり着いたのがGraceful shutdown NodeJS HTTP server when using PM2

以下を追加して試したところうまくいきました。

bin/www
process.on('SIGINT', function() {
  // リクエストの受け入れを停止してからプロセスを止める reload時に404にさせない
  server.close(() => {
    // close connections, clear cache, etc

    process.exit();
  });
  // Force close server after 10sec
  setTimeout((error) => {
    // close connections, clear cache, etc

    process.exit(1);
  }, 10000)
});

reloadすると順番にreloadされました。

ファイルを配置してからreloadすることで404になるタイミングが無く、目的の動作が出来ました。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5