LoginSignup
0
0

JS7® JobSchedulerデイリープランサービスと実行計画

Last updated at Posted at 2023-01-11

JS7®JobSchedulerは独SOS社(Software- und Organisations-Service GmbH)によって開発されている、オープンソースのジョブ管理システムです。
本記事では、JS7®JobSchedulerで実装されているデイリープランサービスの機能について記載しています。

詳細な情報については、以下をご覧下さい。

1. 前提条件

JS7® JobScheduler V.2.3以上がインストール済みであること
ワークフローの作成/実行が一通りできること
JS7® JobSchedulerの概要及びインストール方法については以下を参照ください
Dockerでのインストール手順 https://qiita.com/satoruf/items/360fee5293611433ed33
Windowsでのインストール手順 https://qiita.com/Yoshitami/items/6804584592956a483364
Linux/CLIでのインストール手順 https://qiita.com/satoruf/items/fa9846f4376d1a50a67e
JS7® JobSchedulerクイックスタートhttps://qiita.com/satoruf/items/96f21ef25bcb35e47b21

2. デイリープランサービスについて

デイリープランサービスはJOCコックピットのバックグラウンドサービスの一つで、定義されているスケジュールから毎日定時にワークフローの実行計画(オーダー)を作成し、コントローラーに配布します。

図1.png

新規作成されたスケジュールは、設定画面のperiod_beginで指定した開始時刻から24時間分がその日の実行計画(オーダー)として自動作成されます。開始時刻が0時であればスケジュール作成した日の翌日分のオーダーから0時に自動作成され、例えば19:00:00に設定すると翌日の19時までの実行計画が当日分として作成されます。
作成されたオーダーは予定(Planned)状態になり、コントローラーに配布されると登録(Submitted)になり、コントローラーから実行するエージェントに配布され実行を待ちます。
登録されたオーダーは、JOCコックピットやコントローラーが障害時でもエージェントが動いていれば自律的に実行され、実行ログも保存されます。
エージェントクラスター設定がされている場合は、オーダーが登録されているエージェントが障害時でも、クラスター指定した他のエージェントで実行されます。
手動でデイリープランサービスを実行するには、ダッシュボード画面からJOCコックピットメニューのサービス再起動>デイリープランサービスを選択します。

スクリーンショット 2022-12-23 15.20.43.png

サービスの各種設定は、JOCコックピットの設定からdailyplanを選択し、下記項目を設定します。

スクリーンショット 2022-12-23 15.09.26.png

  • time_zone:設定時刻の時間帯を設定します。初期値が"Etc/Utc"になっているので、通常は"Asia/Tokyo"に設定します。
  • period_begin:24時間分の実行計画を作成する開始時刻を指定されたタイムゾーンで設定します。初期値は00:00:00ですが、例えば19:00:00に設定すると、翌日の19時までの実行計画が当日分として作成されます。
  • start_time:毎日デイリープランサービスを実行する開始時刻を、指定したタイムゾーンの時間で指定します。この設定がない場合、デイリープランサービスは、period_begin設定で指定された時点の30分前に実行されます。この設定には、period_begin時刻とは関係なく23:00:00などの時刻も指定できます。
  • days_ahead_plan:オーダーを生成し予定状態で利用可能にする日数を指定します。初期値は7日ですので、1週間分の予定が常に作成されます。
  • days_ahead_submit:予定済オーダーをコントローラーに配布し、登録状態で利用可能になる日数を指定します。初期値は3日ですので、3日分のオーダーが常に登録されます。

days_ahead_plan、days_ahead_submitを長くすると、スケジュールを変更/削除したいときに予定/登録されたオーダーが大量になり変更する(後述)のが大変になるので、あまり大きくしないことをお勧めします。

予定・登録状態になったオーダーは、実行計画画面で確認できます。

スクリーンショット 2022-12-23 15.06.49.png

カレンダーの日付を選択すると、その日の実行計画(オーダー)が確認できます。
当日および、過去日付の実行済みオーダーは、完了(Finnished)、直近days_ahead_submitで指定した日数分のオーダーは、登録(Submitted)、days_ahead_submitで指定した日数より先から、days_ahead_planで指定した日数までは、予定(Planned)と表示されます。

また、カレンダーの下に登録履歴●作成済-日時が表示され、選択した日の実行計画が作成された日時がわかります。start_timeで設定した時刻(初期値 23:30)、またはサービス再起動による手動実行をした場合は、その時刻が表示されます。

3. 実行計画の変更方法

作成された実行計画(オーダー)は、コントローラー/エージェントに配布されるため、実行計画作成後に該当ワークフロー定義やスケジュール定義を変更しても、自動的に既存実行計画には反映されません。
変更を反映するためには、実行計画画面からカレンダーで日付指定して実行計画を作成し直すか、開始時刻編集かオーダー変数編集で設定変更する必要があります。

image.png

登録状態のオーダーは、キャンセル、開始時刻編集、オーダー変数編集が可能です。オーダー毎でも、複数オーダー一括選択からでも操作できます。

  • キャンセル:コントローラー/エージェントに配布されたオーダーをキャンセルし、オーダーを予定状態に戻します。登録状態からオーダーを直接削除することはできません。
  • 開始時刻編集:選択したオーダーの開始時刻を変更できます。他のオーダーには影響ありません。
  • オーダー変数編集:オーダー変数が設定されている場合は、選択したオーダーのオーダー変数を変更できます。他のオーダーには影響ありません。
    image.png

オーダーを削除するには、キャンセルした後予定状態に変わった後、オーダー削除する必要があります。 登録状態のオーダーを削除することはできません。予定状態のオーダーを再度登録することも可能です。

image.png

予定状態のオーダーは、カレンダーの日付を複数選択して画面右上のオーダー削除ボタンで一括オーダー削除することも可能です。

image.png

オーダー削除後もカレンダー上の反転表示と登録履歴は残っていますので、完全に登録履歴削除するにはカレンダーの下の登録削除ボタンをクリックします。カレンダーの日付を複数選択することも可能です。

image.png

4 . スケジュール変更方法

恒久的変更

ワークフローの実行周期、時刻、オーダー変数を恒久的に変更する場合
ジョブ定義>該当スケジュール定義画面から変更し、リリースすると、自動的に作成済み実行計画とオーダーに反映される

恒久的削除

ワークフローのスケジュールを恒久的に削除する場合
ジョブ定義>該当スケジュール定義を削除すると、実行計画済みのオーダーは全て予定状態になるため、実行計画画面からオーダー削除を行う必要がある

実行予定ワークフローの一時的変更

実行計画オーダー作成済みのワークフローの時刻、オーダー変数を変更する場合
実行計画画面から対象ワークフローの該当オーダーを選択し、開始時刻編集/オーダー変数編集から変更する

実行予定ワークフローの一時的停止

実行計画オーダー作成済みのワークフローを停止する場合
実行計画画面から対象ワークフローの該当オーダーを選択し、オーダーキャンセルする
キャンセルしたオーダーは、予定状態になるので、復旧するにはオーダー登録しなおす
削除したオーダーを復旧するには、実行計画の再作成を行う

複数日の実行予定の停止

ジョブ定義>該当スケジュール定義>ランタイム編集画面から、制限の+をクリック

image.png

停止期間を有効開始日と有効終了日を入力し、実行日だけ入力、周期追加をクリックし登録後、スケジュールをリリースすると自動的に実行計画が変更される

image.png

回復する場合は、制限を削除してスケジュールを再リリース

5 . まとめ

JS7®JobSchedulerは、JOCコックピットやコントローラーが障害時でも、エージェントがワークフローを実行できるようにするために、実行計画をエージェントに事前に配布する仕組みになっています。
つまりワークフロー定義やスケジュール定義を変更しても、変更前の実行計画が存在するため、一旦作成されたものを完全に削除するには、下記の手順を踏む必要があります。

登録状態->キャンセル実行->予定状態->オーダー削除実行->登録履歴削除実行

最初は戸惑うかもしれませんが、この仕組みを理解すれば柔軟な計画変更ができるようになります。


0
0
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
0
0