Create: 2013/03/14
LastUpdate: 2013/03/27
下図の環境を使用します。
環境の詳細を知りたい場合は、メニューに戻って構築手順を参照してください。
ここでは、JOB1(上図)をPerlで作成し、 StandaloneJob として実行してみます。
手順については、「JobScheduler FAQ」を参考にしました。
以下、Perlスクリプトの実行方法を3パターン紹介します。
1.[Script]タブを使用する方法
JOEで下図のようにHost-Aで実行するジョブを定義します。
[Script]タブで、以下のようにPerlスクリプトを記述します。
スクリプトの内容は以下のとおり。
JobSchedulerの内部APIを実装してジョブ名とパラメータを表示します。
use vars qw ($spooler $spooler_log $spooler_job $spooler_task); print $spooler_job->name . " is running.\n"; print "param=" . $spooler_task->params->value("testParam") . "\n"; exit(0);$spooler が付く変数は、JobScheduler の内部APIです。詳しくは、「Spooler - Application Program Interface (API)」を参照してください。
このコードを実行すると、JobSchedulerの libsosperlscript.so が使用され、このモジュールが、libperl.so 必要とするのですが、初期状態では見つけてくれません。
なので、Host-AのJobSchedulerAgent が libperl.so 見つけるようにするため、Host-Aのjobsユーザで以下のコマンドを実行してシンボリック・リンクを作成します。
$ cd /opt/sos-berlin.com/jobscheduler/scheduler_agent/lib $ sudo ln -s /usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE/libperl.so ./libperl.soJOEで下図のようにパラメータを定義します。
JOCでジョブを 実行 します。実行結果は以下のとおり。
ジョブ名とパラメータ値が表示されています。
2.[Process File]タブを使用する方法
Host-Aにjobsユーザでログインして、以下のようにテスト用のアプリケーションを作成します。
このプログラムは、環境変数をダンプします。
ファイル名は "/home/jobs/workspace/perl_proc.pl" とします。
#!/usr/bin/perl use Data::Dumper; print "perl_proc.pl is running.\n"; print Dumper(\%ENV); exit(0);このプログラムに実行権限を付与します。
$ chmod +x /home/jobs/workspace/perl_proc.plJOEで下図のようにジョブを定義します。また、上記1と同じくパラメータも定義します。
JOCでジョブを 実行 します。実行結果は以下のとおり。
シェルスクリプトと同様に環境変数でパラメータ値を参照できます。
3.[Includes]タブを使用する方法
Host-Aにテスト用のアプリケーションを作成します。 内容は以下のとおり。上記1と同じです。
ファイル名は "/home/jobs/workspace/perl_impl.pl" とします。
実行権限は不要です。
上記1と同じく、"libperl.so" のシンボリック・リンクは必要です。
use vars qw ($spooler $spooler_log $spooler_job $spooler_task); print $spooler_job->name . " is running.\n"; print "param=" . $spooler_task->params->value("testParam") . "\n"; exit(0);JOEで下図のようにジョブを定義します。また、上記1と同じくパラメータも定義します。
JOCでの実行結果は、上記1と同じです。
◆ 参考ドキュメント