[CentOS6][SOS JobScheduler] JobChain でパラメータの受け渡し


Create: 2013/02/27
LastUpdate: 2013/03/27
[ メニューに戻る ]

下図の環境で、依存関係のある複数のジョブをHost-A、Host-Bで順番に実行してみます。
環境の詳細を知りたい場合は、メニューに戻って構築手順を参照してください。


ここでは、上図のJOB1 とJOB3 を OrderJob で作成し、JobChain で依存関係を定義します。このJobChainを実行する時に "testParam" という名称でパラメータを設定し、JOB1 で "testParam" の値を変更して、JOB3 で参照してみます。
手順については、「JobScheduler QuickStart (PDF)」を参考にしました。
JOEを使用して OrderJob、JobChainの定義を行い、JOCを使用してパラメータ設定&計画実行(即時)と結果の確認を行います。
JOEの環境(ホットフォルダなど)は、「 [CentOS6][SOS JobScheduler] Host-A、Host-B で複数ジョブ(JobChain)の計画実行(即時)」 で作成したものを流用します。

1.ジョブとJobChain の定義


[CentOS6][SOS JobScheduler] Host-A、Host-B で複数ジョブ(JobChain)の計画実行(即時)」と同じ手順で、OrderJob(job1/job3)とJobChain(jon_chain1)を作成します。

"job1" のスクリプトは、以下のように変更します。パラメータ(testParam) を表示し、値を "56789" に変更します。
起動時に設定したパラメータは、"$SCHEDULER_PARAM_[パラメータ名(大文字)]" で参照できます。
"$SCHEDULER_RETURN_VALUES" はファイルです。ここに出力したパラメータは、同じJobChain のジョブで参照できます。
#!/bin/sh
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`"
echo
echo "testParam = '$SCHEDULER_PARAM_TESTPARAM'"
echo "testParam is modified to '56789'"
echo "testParam=56789" >> $SCHEDULER_RETURN_VALUES
exit $?
"job2" のスクリプトは、以下のように変更ます。パラメータ(testParam) を表示します。
#!/bin/sh
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`"
echo
echo "testParam = '$SCHEDULER_PARAM_TESTPARAM'"
exit $?

2.JobChain 実行と実行結果確認


JOCで [Job Chains]タブを開くと、下図のように "job_chain1" が表示されます。
"job_chain1" を右クリックして、メニューから [Add order] を選択します。


下図のようにポップアップが表示されたら、パラメータを入力して、[submit]ボタンをクリックします。


"job_chain2"が実行され、下図のように表示されたら、[Show orader history]をチェックして、[Show log]ボタンをクリックし、実行結果を参照します。


下図は実行結果です。
"job1" では、"testParam" が "01234" と表示され、
"job3" では、"testParam" が "56789" と表示されています。
"job1" で設定したパラメータを "job3" で参照できることが確認できます。