バッチ管理ツールを作る 仕様もろもろ
ちょっと眠いですが、バッチ管理ツールの仕様を考えてみます。
というか適当に羅列。*1
- Webアプリケーションで、簡単な管理画面がある。
- 親ジョブを登録する画面。
- スケジュールを登録する画面(できればcronではなく、独自実装)。
- 親ジョブを選択したあとで、子ジョブ(ジョブフロー)を登録する画面。
- 親ジョブ単位ですべてのログを取る。ジョブフロー自体を毎回コピーする(スナップショット)。
- エラーなどで止まったジョブは、画面上から再実行できる(その時点のスナップショットを変更して実行も可能)。
- 実行中ジョブはリアルタイムで管理画面に反映。停止も可能。
- 登録できるジョブフローの種類は以下の通り。
- 単体ジョブ
- 条件分岐
- 並列処理
- ジョブ待ち合わせ
- ファイル待ち合わせ
- 登録できるジョブは、言語を問わない。
- アラートメールなど、通知機能も実装(親ジョブ毎に設定?)
こんな感じ。
基本的には現在手作業でやってる最低限のジョブ管理が出来ればOKです。
ジョブはどうやって実行しようかな。
systemコマンドでやるのが簡単なんだろうけど、
上記の仕様を満たすには難しい気がする…。
モダンPerlにもあったジョブキューとか使うといいのかな?
まだ頭の中だけなので、形にするまで時間がかかりそうな感じ。
*1:思い出したら追加していきます