2013.07.13 · 技術と道具

JobScheduler:ジョブのリトライ、サスペンドとレジューム

ジョブの異常終了時の制御

JobSchedulerでは、ジョブが異常終了した場合(原則は戻り値が0以外)のリトライのことをSetBack(セットバック)と呼びます。

また、一旦サスペンドさせて、後でレジュームすることも可能です。

セットバック(リトライ)

セットバックはジョブのSetBackタブで設定します。

joe_job_setback_01
Set Back Count
何回目の実行かを指定します。
Is Maximum
YesにするとそのSet Back Countを最後にリトライを終了します。
Delay
そのSet Back Countでのリトライを実行するまでの待ち時間を指定します。

上図の例では、このように動作します。

10:00(Run Timeに沿った通常の実行)
失敗
10:03(1回目のリトライ)
失敗
10:06(2回目のリトライ)
失敗
10:16(3回目のリトライ)
失敗 →最終的にそのジョブは失敗(ジョブチェーンの場合はエラー時のステートに遷移)

ジョブチェーンでのセットバックの有効化

セットバックを指定したジョブがジョブチェーンに組み込まれている場合、そのままではセットバックは動作しません。

joe_jobchain_setback_01

上図のように、ジョブチェーンノードのOn Errorで、setbackと指定します。

サスペンドとレジューム

ジョブチェーンノードでのOn Errorの設定には、suspend(サスペンド)もあります。

joe_jobchain_suspend_01

サスペンドを指定した場合、ジョブの実行が失敗すると、そのジョブチェーンのオーダーはサスペンド状態に入って動作を停止します。(同じジョブチェーンの他のオーダーには影響を与えません。)

joc_suspend_resume_01

このように、JOCで見てみると、サスペンドに入ったことが分かります。

このオーダーの実行を再開(レジューム)する場合もJOCから操作します。

joc_suspend_resume_02

サスペンドに入ったオーダーを右クリックし、コンテキストメニューからResume orderをクリックします。

ジョブのStop On Errorに注意!

JOEでのジョブの設定で、OptionsタブにあるStop On Errorに注意してください。

joe_stoponerror_01

デフォルトではチェックが入っているのですが、Stop On Errorが有効な場合、ジョブの戻り値が0以外の場合、そこでそのジョブの実行が完全に停止してしまいます。ジョブチェーンに組み込まれている場合、他のオーダーもそのジョブを実行できません。

サスペンドとの違いは下記のとおりです。

suspend
そのオーダーでのみ、そのジョブの実行が停止する(正確には、オーダーの実行が停止する)
Stop On Error
すべてのオーダーで、そのジョブの実行が停止する(ジョブそのものの実行が停止する)
2013/07/13 16:21
← JobScheduler:パラメータの受け渡しと日本語
JobScheduler:XMLやPHPで操作する →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。