ジョブの実行制御①

作成日 2020/07/31
更新日 -

1.Hinemosのジョブ・ジョブネットの制御

ジョブ機能を利用する場面では、多くの場合、実行中のジョブを様々な形で制御する、といった機能が必要になります。 Hinemosのジョブ機能では、単純にジョブを実行するだけではなく、様々な方法でジョブの実行を制御できます。
ジョブを制御することで、予め設定したルールに沿ってジョブを想定通りに実行できます。制御の方法としては、多重度制御、同時実行制御、保留、スキップ、カレンダ制御等があります。また、ジョブを繰り返し実行する機能や後続のジョブ実行に優先度をつける機能もあります。

 

多重度制御 同一Hinemosエージェント上で実行中のジョブ数を制限する
同時実行制御 ジョブをグループ化して、グループ内で同時に実行するジョブの数を制限する
保留 ジョブの実行を途中で止める
スキップ 任意のジョブをスキップして後続ジョブを実行する
カレンダ制御 ユーザが予め設定したカレンダに基づいて実行の有無を決める
繰り返し実行 ジョブ実行失敗時にジョブを繰り返し実行する
後続ジョブ 後続ジョブの実行優先順を設定する

 

本セクションでは、上記、ジョブ・ジョブネットの制御方法等について順に説明します。

 

 

2.多重度制御

ジョブの多重度制御とは、同一Hinemosエージェント上の実行中のジョブ数を制限する仕組みです。Hinemosエージェント上で実行中のジョブ数があらかじめ設定した多重度を上回る場合は、ジョブの実行を待機させる、もしくは、ジョブの実行を終了する事ができます。
ジョブの多重度制御機能により、Hinemosエージェントが動作するサーバのリソース使用抑制を図ることができます。 ジョブの実行多重度が上限に達した場合、同エージェント上で新たに実行契機を迎えたジョブの処理方法は、「待機」もしくは「停止」を指定することが可能です。
ジョブの処理方法に「待機」を指定した場合は、Hinemosエージェント上で同時に実行しているジョブ数が多重度の上限に達すると、それ以降のジョブは待機の状態となります。ジョブの実行が終了し、予め指定した多重度を下回った場合は、待機状態のジョブが実行中に遷移します。
下図(多重度制御の例(待機))は多重度制限を2にして、上限に達した時の挙動を「待機」にした場合の例です。ジョブ1とジョブ2は多重度制限にかからないため、すぐに実行できますが、ジョブ3は多重度制限にかかってしまうため、すぐに実行できません。ジョブ1が終了すると、多重度が1に下がるため、ジョブ3の実行状態は実行中へ遷移します。同様にジョブ4も多重度制限にかかってしまうため、すぐには実行できませんが、ジョブ2が終了すると、ジョブ4の実行状態が実行中へ遷移します。

 

多重度制御の例(待機)

 

ジョブの処理方法に「停止」を指定した場合は、Hinemosエージェント上で同時に実行しているジョブ数が多重度の上限に達すると、それ以降のジョブは停止となり、実行されません。

 

下図(多重度制御の例(停止))は多重度制限を2にして、上限に達した時の挙動を「停止」にした場合の例です。ジョブ1とジョブ2は多重度制限にかからないため、すぐに実行できますが、ジョブ3は多重度制限にかかってしまうため、停止します。ジョブ1が終了すると、多重度が1に下がるため、ジョブ4実行状態が実行中へ遷移します。

 

多重度制御の例(停止)

 

 

 

3.同時実行制御

ジョブの同時実行制御は、ジョブ同時実行制御キューとの関連付けによりジョブをグループ化して、同時に実行するジョブの数を制限する仕組みです。

 

ジョブの同時実行制御

 

上図の例では、Job1、Job2、Job3の順でジョブが実行され、ジョブ同時実行制御キューにも同様の順番でキューが登録されています。ジョブ同時実行制御キューに登録されたジョブは、キューへの登録時刻順に実行されていくため、まずJob1が実行されます。※キューへの登録時刻が同時刻である場合はジョブID順に実行されます。
この図では、ジョブ同時実行制御キューの同時実行可能数は”1”に設定されているため、Job1の実行中は同じジョブキューに登録されたほかのジョブ(上図の例ではJob2とJob3)は”実行中(キュー待機)”状態となり、Job1が終了するまでは実行されません。上図ではJob1の終了後は、キューへの登録時刻が2番目に早いJob2が実行されます。

 

 

4.保留

ジョブの保留とは、ジョブの実行契機を迎えたジョブを予め保留させる機能です。実行状態を保留としたジョブ・ジョブネットは実行されず、後続ジョブ・ジョブネットも待機状態となります。
保留状態のジョブ・ジョブネットは、保留解除の操作を行う事で、処理を再開できます。

 

ジョブの保留

 

 

5.スキップ

ジョブのスキップとは、ジョブネットを実行する際に一部のジョブだけをスキップし、実行しない機能です。 予め実行状態をスキップとしたジョブ・ジョブネットは実行されません。 予めスキップの設定がされたジョブを起動すると、そのまま実行状態は終了へ遷移し、予め指定した値がスキップされたジョブ・ジョブネットの終了値となります。後続ジョブ・ジョブネットは、上記で指定された終了状態・終了値を基に実行されます。

 

ジョブのスキップ

 

 

6.カレンダ制御

カレンダ制御は、ジョブを起動する・しないといった制御をカレンダによる稼働日・非稼働日で指定することが出来る機能です。カレンダ設定されているジョブは、設定したカレンダの稼動期間範囲内の場合のみ、実行されます。 例えば、カレンダ機能にて営業日カレンダを定義して、ジョブへ設定することにより、特定の営業日に実行するジョブを定義することができます。

 

カレンダ制御例

 

カレンダは、ジョブネット単位の指定に用いることも可能です。
上図の例では、ジョブネット(JN7100000)内のジョブネット(02_JN18_1、及び03_JN18_1)に対してそれぞれ別のカレンダを定義し、曜日により実行されるジョブネットを切り替えています。

 

 

7.繰り返し実行

繰り返し実行とは、ジョブ・ジョブネットを指定した終了状態になるまで指定した試行回数を上限とし、繰り返し実行し続ける機能です。
試行回数は、任意の回数を指定することができます。繰り返し実行中に、ジョブの完了状態が予め指定した終了状態となったら、繰り返し実行を停止し、ジョブを終了させます。完了状態欄を空欄設定にすると、ジョブの終了状態によらず試行回数分繰り返し実行を行います。

 

 

8.後続ジョブの実行優先度付け

後続ジョブの実行優先度付けの設定では、複数の後続ジョブが待ち条件を満たしている中で、最も優先度の高い後続ジョブのみを予め指定して1つだけ実行することができます。
この設定により、待ち条件を設定している複数のジョブが登録されている場合でも、最優先したいジョブだけを実行させることができます。

 

 

関連情報

 

 

 

お問い合わせ