LoginSignup
1
0

JS7® JobScheduler を使って定期処理してみた!

Posted at

先日インターンにてwindows serverにJS7の環境を作って色々触ってみたので軽くまとめます。

WorkFlow


WorkFlowの定義方法はこちら
WorkFlowの実行方法はこちら

WorkFlowとは

Workflows implement jobs and dependencies for workload automation. Orders are triggers that cause the execution of workflows.

  • The Configuration View provides a graphical design view of the JS7 - Workflow Editor.
  • The Workflows View provides a tactical view which can be used to monitor the processing of orders with workflows in near real-time and to perform interventions if required.

workflowの設定はjsonで管理されるが、guiでも設定可能なため可能な限りguiで設定した方が良い。
理由としてはguiだとジョブ間の依存関係やジョブの実行する順番が可視化されるので間違いを未然に防ぎやすい。

01.png

ジョブの前後やworkflowの処理前、処理中、処理後にジョブを登録することができる。
並列処理をまたいでジョブの実行順序を調整することも可能
たとえば、以下の画像のjob1aとjob2aの両方の実行後にjob2bが処理が開始されるみたいなイメージ

02.png

ジョブの実行方法は、以下の2パターンがある

シェルジョブで実行する際の環境変数はJob Resourcesを利用する

環境変数を動的にする

環境変数を動的に定義するにはOrder変数を使う。
シェルジョブの実行結果を動的にOrder変数として定義することができる。
これにより、jobの処理結果に応じて後続のjobの処理を変更することができる。

Order


orderとは

Orders are triggers for the execution of workflows. They can be scheduled for a given date and time.
In addition, orders can carry variables that are available to the instructions and jobs in workflows.
Orders are statefu objects subject to JS7 - Order State Transitions.

WorkFlowを実行するトリガーのこと

各ステータスの一覧

スケジューリング


スケジューリングの方法にDailyPlanを利用する。

Daily Planとは

JS7公式ドキュメントによると以下の通り。

The Daily Plan is used to manage start times for orders that are executed by the workflows available with the connected Controllers.

要するに作成したスケジュール定義に基づいて、日単位でDailyPlanを作成することができる。これにより、事前にスケジュールが想定通りに登録されているかを確認し、必要に応じて修正することができるということ。

Daily Planを作成には、以下の2パターンがある。

  • 特定の日付を指定して手動実行
  • Daily Plan Serviceによる自動実行

Daily Planが登録されたら以下の3つのステータスが割り振られる

  • planned
    Orderの仮登録状態。予定確認のためのステータスのこと。この状態では処理は実行されない。
  • submitted
    Orderが正式に登録された状態。ControllerやAgentに対してスケジュールや対象のWorkFlowなどの情報が送信される。
  • finished
    Orderが完了した状態。処理の結果には正常なものだけでなくエラーも含まれる。実際の処理結果はHistoryで確認することができる。

特定の日付を指定して手動実行

特定の日付を指定して手動実行の方法に関してはこちら

Daily Plan Serviceによる自動実行

Daily Plan Serviceとは
JOCコックピットのバックグラウンドサービスの一つで、定義されたスケジュールに基づいて毎日定時にワークフローのDaily Plan(order)を作成し、コントローラーに配布する。

以下のオーダー自動計画にチェックを入れると以下のDaily Plan Servieで設定した内容でスケジューリングされる。

03.png

以下Daily Plan Servieの設定項目はこちら

04.png

なおユーザーには以下の権限がないとDaily Plan Serviceの設定項目は編集できない。
sos:products:joc:administration:settings:view
sos:products:joc:administration:settings:manage

スケジュール定義

スケジュール定義の方法に関してはこちら

スケジュールでは、カレンダーを利用して特定の日にワークフローを開始するタイミングを指定する。
カレンダーによって提供される日付をさらに制限して、実行を月の特定の平日や特定の日に限定することができる。

カレンダーとは
ワークフローが開始する必要のある日付を指定する。
Cron形式では実現が面倒だった営業日や休業日を考慮したスケジュールを簡単に作成することができる。
さらに、予定が可視化されるため、スケジュール定義のミスによる誤動作を防ぐことができる。

実行可能な日付((土日、祝日を除く))を指定して制限したカレンダー05.png

役割と権限


デフォルトで設定されているroleと紐ずく権限に関してはこちら

Identity Services毎にroleを作成して権限をアタッチするイメージ.

roleと権限の作成または編集はこちら

それぞれの操作にどの権限が必要かは以下の表を見てアタッチするしかなさそう
https://kb.sos-berlin.com/display/JS7/JS7+-+Default+Roles+and+Permissions#JS7DefaultRolesandPermissions-MatrixofDefaultRolesandPermissions

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