Node.jsアプリをバッチ処理とかしたいなと思い、
いろいろ調べてみたときの備忘録(*´ω`*)
PM2を使うのがよいっぽい(*´ω`*)
PM2とは
PM2はデーモンプロセスマネジャーらしい。
Node.jsで動作するが、Node.js以外の起動できるっぽい。
PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.
PM2は以下のことができるらしい。
- バックグラウンドで動作するアプリのstart/restartなどが簡単にできる
- ファイル変更/メモリ使用量/CRONなどのrestart戦略が指定できる
- systemdなどの自動起動スクリプトを生成できる
- Node.jsのcluster moduleを使ってスケールできる
- JS製のPM2 APIで操作できる
使い方
Quick Start
# インストール $ npm install pm2@latest -g # アプリの起動などの操作 $ pm2 start app.js $ pm2 restart <app_name> $ pm2 reload <app_name> $ pm2 stop <app_name> $ pm2 delete <app_name> # 一覧の表示 $ pm2 list # ログの表示 $ pm2 logs # 設定ファイルの生成 $ pm2 ecosystem $ ls ecosystem.config.js $ pm2 start ecosystem.config.js # 自動起動用スクリプトの生成など $ pm2 startup $ pm2 save $ pm2 unstartup
設定ファイル
pm2
コマンドを使わなくても設定ファイルで管理もできる
module.exports = { apps : [{ name : "app1", script : "./app.js" }] }
TypeScriptの利用
速度の問題のため推奨はされていないけど、
transpileなどもしてくれるらしい。
$ pm2 install typescript
$ pm2 start index.ts
Ecosystem Fileの型定義はなさそうな感じなのかな?
以上!! とりあえず、概要はわかった気がする(*´ω`*)