LoginSignup
1
0

More than 1 year has passed since last update.

JS7® JobScheduler DailyPlanによるスケジュール作成

Last updated at Posted at 2022-06-03

概要

JS7 JobScheduler で、DailyPlanを使ってWorkFlowの実行スケジュールを作成する方法について解説します。

前提条件

Ver 2.5.1以前の環境では、スケジュール定義にて休業日カレンダーを使用した場合、他のスケジュール分も含めて休日のDailyPlanが作られなくなる問題を把握しています。
(※Ver 2.5.2で解消しました)
もし対象バージョン利用の場合は、下記の記事で、回避手段を紹介していますので、そちらをご参考ください。
【補足】休業日カレンダー利用時の回避手段

DailyPlanとは

あらかじめ作成したスケジュール定義にしたがって、日単位で、実行計画(DailyPlan)を作成できます。
そのため、想定通りの日時にスケジュールが登録されているかを事前に確認し、必要に応じて修正を行えます。
image.png

また直近の予定は、自動的に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サービスの設定があります。

image.png

  • 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日後まで)
  • days_ahead_submit :
    • DailyPlanサービス実行時に、指定日先までOrderが登録される
      (Controller/Agentに送信され、submittedとなる)
    • デフォルト 3 の場合は、3日後までがSubmittedとなる(※厳密にはUTC日付で3日後まで)
    • 0にすると、Plannedのままとなる

この設定をもとに、毎日定時(デフォルト 23:30)に自動的に設定期間内のDailyPlanが作成されます。

DailyPlanサービスの手動実行

上記の設定時刻まで待たなくとも、メニュー操作での実行も可能です。

トップ画面 Component Status より JOC のコンポーネントのメニューを選び
Restart Service - Daily Plan Service で即時実行できます。

image.png

既にスケジュールが定義済みの場合は、この操作で7日先までのDailyPlanが作成されます。
設定変更後、スケジュール設定を一括で行う場合などによく使用する操作です。

動作確認方法

DailyPlanビューより、現在のDailyPlanの状況を確認できます。

image.png

カレンダーより日付を選択すると、その日の登録スケジュールが確認できます。
当日および、過去日付の実行済み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となっているはずです)
image.png

Orderを選択して、キャンセルしてください。
image.png

Planned に変わったことを確認します。
image.png

DailyPlanを削除してみます。
image.png

DailyPlanが消え、Planned 状態のOrderも消えました。(Submittedのままでは削除できません)
image.png

Create Daily Plan を選択します。
image.png

All , Submit to Controller を選択します。
image.png

項目 内容
Choose Schedules 選択日が対象となる全スケジュールを登録
または個別のスケジュールを選択
Overwrite 既にDailyPlanを作成済みの場合、同一スケジュールのOrderを上書きするか
Submit to Controller ControllerにOrder情報を送信(Submittedとなる)

該当日のDailyPlanが再作成されました。
image.png

カレンダーより日付をまとめて選択することで、既存のスケジュールを一括でキャンセル、DailyPlan削除を行うこともできます。
(マウスで開始日から終了日まで選択 または Ctrl を押したまま開始日、終了日を選択)

明日以降に登録されている予定をすべてキャンセルし、DailyPlanを削除します。
image.png
登録がすべて削除されました。
image.png

DailyPlanサービスを再起動してください。
image.png

7日先までのDailyPlanが一括で作成されたことを確認します。
image.png

スケジュールの修正について

スケジュールを手動でメンテナンスしてみます。

一方のスケジュールは、この日に限って開始時刻を12:00から13:00 に修正します。
image.png
image.png

一方のスケジュールは、この日に限って削除します。(Cancel後、Remove Order)
image.png

DailyPlanサービスを再起動してください。

修正した日を確認し、スケジュールが変わっていないことを確認します。
(一方のスケジュールは13:00開始、もう一方は削除されたまま)
image.png

既にDailyPlanが作成済みの日は、サービス実行によって勝手に書き換わることはありません。
マニュアル操作でスケジュールを変更した場合は、あくまでそちらが優先されます。
(ただし直近日程の planned → submitted は自動で書き換わります)

もし修正を一旦リセットし、本来のスケジュール定義通りにもどしたい場合は、キャンセル、DailyPlan削除してから、再作成します。

WorkFlow変更を反映させるには

DailyPlanで作成されたOrder情報(実行WorkFlow、開始日時など)は、Submittedとなった時点で、既にController/Agentにまで送られています。
この場合、WorkFlowを修正した場合でも、新しいWorkFlowに置き換わりません。

WorkFlowメニューで、日付範囲 ALLで確認すると、Submitted状態のOrderが確認できます。
WorkFlowを修正しても、Orderは旧バージョン側に登録されたままで、新バージョン側は空です。
image.png

もしすぐに反映させたい場合は、既存の該当Orderをまとめてキャンセルし、再度Submitとしてください。
(DailyPlanサービス再起動 でも可)
image.png
image.png

旧バージョンの表示は消え、すべて新バージョン側で登録されていることが確認できました。
image.png

補足

もしWorkFlowメニューでOrder情報がうまく表示されない場合は monitorサービスの再起動をしてしばらく待ってください
image.png

スケジュールの変更を反映させるには

スケジュール定義を新たに追加したり、開始時刻を変更した場合も、既にDailyPlanが作成済みの場合は、勝手に変更されることはありません。
この場合も、既存のOrderのキャンセル/DailyPlan削除を行い、DailyPlanサービス再起動 を行うことで、簡単に再登録できます。

最後に

DailyPlanは、慣れるまでは操作がやや分かりづらいかもしれませんが、要領がつかめれば、先の具体的なスケジュールまで確認できる大変便利な機能です。
本記事の説明で、日常運用に必要となる基本操作はマスターできたかと思います。
”明日から変更”といった場合にも迷うことなく対応できるように、ぜひ操作に慣れてください。

参考

JS7 - Daily Plan (メニュー)
JS7 - Daily Plan Service

1
0
1

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