Node.jsでclusterモジュールを使って、masterからworkerをいくつか呼び出してアプリを動かすことはよくある。
そのときに、workerが正常終了(worker内でプログラマが意図してkillさせた場合)した場合と、異常終了した場合とで処理を分けたい時がある。
特に、異常終了した場合に自動的にworkerを再起動させる方法をまとめておく。
バージョン
以下の環境にて動作確認済
- Node.js v0.10.5
- Amazon Linux AMI 2013.03
やりかた
とりあえずサンプルを載せます。
こんな感じで動く。
exitイベントでコールバックしてきたworkerオブジェクトがsuicideというプロパティを持っているので、そこを参照すると、そのexitイベントが正常終了によって起こったものなのかどうかが分かる。
参考資料