ジョブ管理システム

ジョブ管理システム（ジョブかんりシステム）とは、コンピュータ上での複数のジョブ（プログラム、バッチ処理）の起動や終了を制御したり、ジョブの実行・終了状態の監視・報告などを行うソフトウェアである。「ジョブスケジューラ」、「タスクスケジューラ」とも呼ばれる。
なお、設定した時間にプログラムを起動するような単純なものを「タスクスケジューラ」と呼び、高度なもの（営業日や稼働日などの複数のカレンダーを持ち、複数のコンピュータ間の複雑なジョブ間の先行関係や例外処理を定義できるものなど）を「ジョブスケジューラ」と呼び分ける場合もある。比較的単純なものはオペレーティングシステムに標準装備されている場合も多い。
主な機能.
ジョブ管理システムは、一般的に次のような機能を持つ。
ジョブのスケジューリング.
複数あるジョブそれぞれの起動契機をスケジュールする。たとえば、毎日何時何分にジョブ A を起動するとか、ジョブ B が正常終了したらジョブ C を起動する等とかいったことである。WindowsやUNIXなどのOS標準機能でも簡単な曜日・時刻指定の起動ができるが、ジョブ管理ソフトウェアでは複数のカレンダー、複雑な先行関係、ファイルトリガー、外部トリガーなどが組み合わせられるものが多い。
計算資源スケーリング.
ジョブはしばしば高負荷・低頻度である（c.f. ストリーム処理）。すなわちジョブを実行する計算資源は常に100%利用されているのではなく、間欠的に高負荷がかかる形で利用される。効率的な計算資源利用のために、ジョブ管理システムはしばしば計算資源のスケーリングを提供する。例えばJobがない場合には全てのクラウドインスタンスを停止し、Job開始にあわせてインスタンスを起動、Job数が増えた場合にはインスタンスを一時的に増加させる。オンプレミス環境の場合でも、高負荷時だけ一時的にクラウドへオフローディングできる。
ジョブの異常の報告.
ジョブが実行時あるいは終了時に異常が発生した場合、メールやメッセージ等でオペレータに異常を報告する。
自動リトライ.
ジョブは様々な理由から失敗しうる。その理由はエラー発生・プロセス停止・インスタンスダウンなど様々あり、場合によってはJobをもう一度おこなう（リトライする）方が好ましい場合がある。ジョブ管理システムはJob失敗検出をトリガーとした自動リトライを提供する (c.f. システム運用における復旧・自動修復。Jobは正常終了時にterminateするがサービスの場合はその数を維持する）。
ジョブの実行状態のログを保存.
ジョブが出力したメッセージやジョブの終了ステータス等をログに保存する。