概要
JS7 JobScheduler で、DailyPlanを使ってWorkFlowの実行スケジュールを作成する方法について解説します。
前提条件
- JS7 jobscheduler の環境準備、初期設定を済ませていること。
まだの方はこちらから
JS7® JobScheduler 初期設定、サンプルWorkFlowの登録 - WorkFlowの作成、実行、ログ確認などの基本操作ができること。
こちらで簡単な操作説明をしています
JS7 JobScheduler 初めてのWorkFlow実行 - スケジュール定義を理解していること。
本記事は、既にスケジュールを定義できることを前提とした内容です。
こちらで基本操作を説明しています。
JS7® JobScheduler スケジュールの設定 - 本記事はJobScheduler Ver. 2.3.1, 2.4.1 で確認した内容です。
今後内容が変わる可能性があります。
Ver 2.5.1以前の環境では、スケジュール定義にて休業日カレンダーを使用した場合、他のスケジュール分も含めて休日のDailyPlanが作られなくなる問題を把握しています。
(※Ver 2.5.2で解消しました)
もし対象バージョン利用の場合は、下記の記事で、回避手段を紹介していますので、そちらをご参考ください。
【補足】休業日カレンダー利用時の回避手段
DailyPlanとは
あらかじめ作成したスケジュール定義にしたがって、日単位で、実行計画(DailyPlan)を作成できます。
そのため、想定通りの日時にスケジュールが登録されているかを事前に確認し、必要に応じて修正を行えます。
また直近の予定は、自動的にOrder登録状態となり、Order情報(実行日時、対象WorkFlowなど)は、事前にController、Agent側に送信されます。
そのため、万が一JOCで障害が発生した場合でも、エージェントのみでスケジュール処理を実行できます。
(WorkFlowが単一エージェントで実行される場合)
State の種類
DailyPlanで登録されるOrderの状態には、下記の3パターンがあります。
- planned : Orderの仮登録状態。予定確認用。この状態のままでは、処理は実行されない。
- submitted : Orderが登録された状態。Controller、Agentにもスケジュール、対象WorkFlow等の情報が送信されている。
- finished : DailyPlanによるOrderが完了した状態。(正常/エラー含む)※実際の処理結果はHistoryで確認します。
DailyPlanの作成方法
DailyPlanの作成には、サービスによる自動実行と、日付を指定して手動実行の2パターンがあります。
普段はDailyPlanサービスによる自動処理に任せっぱなしになりますが、WorkFlow、スケジュール修正などを行い、Orderを再登録する場合など、必要に応じて使い分ける必要があります。
事前準備
本例では、あらかじめ2つのスケジュールが定義されていることを前提とします。(WorkFlowは任意)
- sche_daily10 毎日10時に実行
- sche_daily12 毎日12時に実行
DailyPlanサービスについて
スケジュールを自動登録するDailyPlanサービスについて説明します。
DailyPlanサービスの設定
Settings より DailyPlanサービスの設定があります。
- time_zone :
- DailyPlanの日付の基準となるTimeZoneを指定
- period_begin :
- 日付を区切る時刻
- 通常は
0:00
でよい -
05:00
指定ならば、5/20分のDailyPlan作成で、開始スケジュール 5/20 5:00 - 5/21 5:00 のOrder予定が作成される
- start_time :
- Daily Planの処理をスケジュール実行する時間
- 未指定(デフォルト)で、period_beginの30分前に実行される
(デフォルトで、 period_begin 0:00の場合、23:30にDaily Planサービスが実行される)
- days_ahead_plan :
- DailyPlanサービス実行時に、指定日先までのPlanが作成される
※Planの時点では、Controller/Agentには送信されない
デフォルト 7 の場合は、7日後までPlanが作成される(※厳密にはUTC日付で7日後まで)
- DailyPlanサービス実行時に、指定日先までのPlanが作成される
- days_ahead_submit :
- DailyPlanサービス実行時に、指定日先までOrderが登録される
(Controller/Agentに送信され、submittedとなる) - デフォルト 3 の場合は、3日後までがSubmittedとなる(※厳密にはUTC日付で3日後まで)
- 0にすると、Plannedのままとなる
- DailyPlanサービス実行時に、指定日先までOrderが登録される
この設定をもとに、毎日定時(デフォルト 23:30)に自動的に設定期間内のDailyPlanが作成されます。
DailyPlanサービスの手動実行
上記の設定時刻まで待たなくとも、メニュー操作での実行も可能です。
トップ画面 Component Status より JOC のコンポーネントのメニューを選び
Restart Service
- Daily Plan Service
で即時実行できます。
既にスケジュールが定義済みの場合は、この操作で7日先までのDailyPlanが作成されます。
設定変更後、スケジュール設定を一括で行う場合などによく使用する操作です。
動作確認方法
DailyPlanビューより、現在のDailyPlanの状況を確認できます。
カレンダーより日付を選択すると、その日の登録スケジュールが確認できます。
当日および、過去日付の実行済みOrderは、Finnished
直近3日以内のOrderは、Submitted
3日より先の日付は、Plannedとなっていることとを確認します。
また、カレンダー下に Created yyyy/mm/dd hh:mm:ss
が表示されていることを確認してください。
こちらは、選択した日のDailyPlanが作成された日時です。
JOCを起動したままの環境ならば、設定された時刻(デフォルト 23:30)
上記サービス再起動による手動実行をしたならば、その時刻がはいっています。
DailyPlan手動登録について
DailyPlanビューより、日単位でDailyPlanを作成する方法や、登録されたOrder情報の編集について見ていきます。
DailyPlanのOrder情報操作(基本)
すでにOrderが登録されている場合、そのOrderの状態を操作してみます。
カレンダーにて、明日の日付を選択してください。
その日にDailyPlanによってスケジュールされているOrder情報が確認できます。
(明日ならばSubmittedとなっているはずです)
DailyPlanが消え、Planned 状態のOrderも消えました。(Submittedのままでは削除できません)
All
, Submit to Controller
を選択します。
項目 | 内容 |
---|---|
Choose Schedules | 選択日が対象となる全スケジュールを登録 または個別のスケジュールを選択 |
Overwrite | 既にDailyPlanを作成済みの場合、同一スケジュールのOrderを上書きするか |
Submit to Controller | ControllerにOrder情報を送信(Submittedとなる) |
カレンダーより日付をまとめて選択することで、既存のスケジュールを一括でキャンセル、DailyPlan削除を行うこともできます。
(マウスで開始日から終了日まで選択 または Ctrl を押したまま開始日、終了日を選択)
明日以降に登録されている予定をすべてキャンセルし、DailyPlanを削除します。
登録がすべて削除されました。
7日先までのDailyPlanが一括で作成されたことを確認します。
スケジュールの修正について
スケジュールを手動でメンテナンスしてみます。
一方のスケジュールは、この日に限って開始時刻を12:00
から13:00
に修正します。
一方のスケジュールは、この日に限って削除します。(Cancel後、Remove Order)
DailyPlanサービスを再起動してください。
修正した日を確認し、スケジュールが変わっていないことを確認します。
(一方のスケジュールは13:00開始、もう一方は削除されたまま)
既にDailyPlanが作成済みの日は、サービス実行によって勝手に書き換わることはありません。
マニュアル操作でスケジュールを変更した場合は、あくまでそちらが優先されます。
(ただし直近日程の planned → submitted は自動で書き換わります)
もし修正を一旦リセットし、本来のスケジュール定義通りにもどしたい場合は、キャンセル、DailyPlan削除してから、再作成します。
WorkFlow変更を反映させるには
DailyPlanで作成されたOrder情報(実行WorkFlow、開始日時など)は、Submittedとなった時点で、既にController/Agentにまで送られています。
この場合、WorkFlowを修正した場合でも、新しいWorkFlowに置き換わりません。
WorkFlowメニューで、日付範囲 ALLで確認すると、Submitted状態のOrderが確認できます。
WorkFlowを修正しても、Orderは旧バージョン側に登録されたままで、新バージョン側は空です。
もしすぐに反映させたい場合は、既存の該当Orderをまとめてキャンセルし、再度Submitとしてください。
(DailyPlanサービス再起動 でも可)
旧バージョンの表示は消え、すべて新バージョン側で登録されていることが確認できました。
補足
もしWorkFlowメニューでOrder情報がうまく表示されない場合は monitorサービスの再起動をしてしばらく待ってください
スケジュールの変更を反映させるには
スケジュール定義を新たに追加したり、開始時刻を変更した場合も、既にDailyPlanが作成済みの場合は、勝手に変更されることはありません。
この場合も、既存のOrderのキャンセル/DailyPlan削除を行い、DailyPlanサービス再起動 を行うことで、簡単に再登録できます。
最後に
DailyPlanは、慣れるまでは操作がやや分かりづらいかもしれませんが、要領がつかめれば、先の具体的なスケジュールまで確認できる大変便利な機能です。
本記事の説明で、日常運用に必要となる基本操作はマスターできたかと思います。
”明日から変更”といった場合にも迷うことなく対応できるように、ぜひ操作に慣れてください。