ジョブの待ち条件にジョブ変数を設定する
投稿日: / 更新日:
この記事は2年以上前に書かれたものです。情報が古い可能性があります。
こんにちは。
Hinemosでは、ジョブの待ち条件として様々な条件や値を設定することが可能です。
現時点(Hinemos ver.6.1)では、以下が設定可能です。
・ジョブ(終了状態)
・ジョブ(終了値)
・時刻
・セッション開始後の時間(分)
・ジョブ変数
・セッション横断ジョブ(終了状態)
・セッション横断ジョブ(終了値)
今回の記事では、上記のうち「ジョブ変数」の活用方法を紹介致します。
例えば、以下のようなジョブが存在するとします。
◯ジョブの構成
1 2 |
JobUnit └Job1→Job2→Job3 |
◯ジョブの内容
・Job1
→特定のフラグファイルの有無を確認し、あればJob2を実行、なければJob2をスキップ。
・Job2
→Job1の後続のジョブ。フラグファイルの有無により実行されるかどうかが決まる。
・Job3
→Job2の後続のジョブ。Job2が正常終了した場合に実行。
条件:フラグファイルの有無に関わらず、全てのジョブが正常終了すること。
それでは、早速やってみましょう!
1.スクリプトの準備
まずは、「フラグファイルの有無を確認し、ある場合とない場合で異なる値を返す」という動作を行うスクリプトを準備します。
今回は、フラグファイル”flag_file”がある場合に以下の値を返し、
1 |
FileCheckResult=0 |
フラグファイルがない場合に、以下の値を返すスクリプトを作成しました。
1 |
FileCheckResult=1 |
2.ジョブの作成
上記の例と同じ構造のジョブユニット、及びコマンドジョブを作成します。
それぞれのコマンドジョブに以下の設定を入れます。
・Job1
1.先程のスクリプトを実行した際のコマンドを起動コマンドに指定します。
2.「ジョブ終了時の変数設定」をクリックし「ジョブ終了時の変数一覧」を表示します。
3.名前と値に以下の値を指定し、「標準出力から取得(正規表現)」にチェックを入れます。
1 2 |
・名前:job_variable ←任意の値 ・値:.*FileCheckResult\=(.*) |
・Job2
1.待ち条件に以下の設定を入れます。
1 2 3 4 |
・名前:ジョブ変数 ・判定値1:#[job_variable] ←上で指定したジョブ名を入れます ・判定条件:=(数値) ・判定値2:0 |
2.「条件を満たさなければ終了する」にチェックを入れ、終了状態と終了値に以下を設定します。
1 2 |
・終了状態:正常 ・終了値:0 |
※起動コマンドは「sleep 1」など任意のものを指定してください。
・Job3
1.待ち条件に以下の設定を入れます。
1 2 3 |
・名前:ジョブ(終了状態) ・ジョブID:Job2 ・値:正常 |
※起動コマンドは「sleep 1」など任意のものを指定してください。
設定は以上です!
3.ジョブの実行
それでは、実際にジョブを実行してみましょう。
◯フラグファイル(flag_file)が有る場合
Job2含め、全てのジョブが実行され、正常に終了しました。
◯フラグファイル(flag_file)が無い場合
Job2は実行されず(実行回数:0)、かつ全てのジョブが正常に終了しました。
このように待ち条件にジョブ変数を使用することで、終了状態や終了値などの条件では難しいジョブの流れを実現することが可能です。
以上、簡単でしたがジョブ変数の活用方法のご紹介でした。
機会がございましたら、他の待ち条件の動作についても解説できたらと思います。