[CentOS6][SOS JobScheduler] JobChainをネストする


Create: 2013/06/10
LastUpdate: 2013/06/10
[ メニューに戻る ]

ここでは下図の環境を使用します。
環境の詳細を知りたい場合は、メニューに戻って構築手順を参照してください。


JobChain をネストして、JobChainからJobChainを実行することができます。
ここでは、JobChainA → JobChainB を順番に実行する JobChain01 を定義してみます。
今回は、Managerサーバ上でJobChainを実行します。
手順は、「リファレンスマニュアル」を参考にしました。

1.テスト用のジョブ定義


"job01.job.xml" ファイルにテスト用のジョブを以下のように定義します。
<?xml version="1.0" encoding="ISO-8859-1"?>
<job order="yes">
    <script  language="shell">
        <![CDATA[
echo "$SCHEDULER_JOB_NAME processed $SCHEDULER_ORDER_ID"
echo "Current Timestamp: `date '+%Y-%m-%d %H:%M:%S'`"
echo "Current Hostname: `uname -n`"
echo "Current Username: `whoami`"
exit 0
        ]]>
    </script>
</job>


2.JobChainA と JobChainB の定義


上記1で作成したジョブを実行するJobChainを2つ定義します。
"job_chainA.job_chain.xml" と "job_chainA.job_chain.xml" のファイル名で以下のように定義します。
今回は、ネスト定義の動作確認をしたいだけなので、タイトル(赤字)以外は、同じ内容としています。
<?xml version="1.0" encoding="ISO-8859-1"?>
<job_chain  orders_recoverable="yes" visible="yes" title="JobChainA">
    <job_chain_node  state="01" job="job01" next_state="02" error_state="error"/>
    <job_chain_node  state="02" job="job01" next_state="success" error_state="error"/>
    <job_chain_node  state="success"/>
    <job_chain_node  state="error"/>
</job_chain>

3.JobChain01 の定義


上記2で作成したJobChainA →JobChainB を順番に実行する JobChain を作成します。
"job_chain01.job_chain.xml" のファイル名で以下のように定義します。
<?xml version="1.0" encoding="ISO-8859-1"?>
<job_chain  orders_recoverable="yes" visible="yes" title="nest sample">
    <job_chain_node.job_chain  state="100" job_chain="job_chainA" next_state="200" error_state="error"/>
    <job_chain_node.job_chain  state="200" job_chain="job_chainB" next_state="success" error_state="error"/>
    <job_chain_node.end  state="success"/>
    <job_chain_node.end  state="error"/>
</job_chain>

4.動作確認


JOCで、JobChain01(job_chain01) を実行します。


JobChain01 が実行されると、まず、下図のように JobChainA が実行されます。


実行結果は、下図のとおり。
JobChain01 としてのログは見られません。
JobChainA と JobChainB は、それぞれのログを見ることができます。
また、JobChainA と JobChainB は、JobChain01 と同じ OrderID で実行されています。