XMLやPHPで操作する

SOS JobSchedulerを他のシステムと統合したいと思うことがあります。例えば、既存システムからジョブをキックするとか、ジョブの実行状況をNagiosやZabbixといった監視システムから取得するといったことです。

そうした場合でも、JobSchedulerなら安心です。TCP通信でXMLのコマンドを投げると、結果を返してくれるようになっているのです。また、TCP通信でのXMLのやりとりをラッピングしたPHPライブラリも提供されています。

Telnetで通信してみよう!

例えば、/test/job_chain1というジョブチェーンがあるとして、それをTelnetから実行してみましょう。

telnet localhost 4444 →localhostにJobSchedulerがインストールされているとする
Trying localhost…
Connected to localhost.
Escape character is ‘^]’.

JobSchedulerとTelnet(TCP)での会話が出来るようになりました。
ここで、以下のXMLを送信してみましょう。

<add_order job_chain=”/test/job_chain1″ at=”now” />

すると、JobSchedulerからこんな回答が返ってきます。

JOC(JobScheduler Operation Centre)を見てみると・・・

joc_order_history_01

たしかに実行されているようです。

PHPでJobSchedulerを操る

上記のようにTCPでXMLを送信するとJobSchedulerを操作できますから、あとはお好きなプログラム言語でソケットプログラミングすればOKということになります。
SOS社では、PHPでのAPIライブラリを提供しています。

JobScheduler Program Interface

上記ページの説明どおり、package_scheduler.zipとpackage_class.zipをそれぞれダウンロード→展開して、次のようなコードを書いてみましょう。

エラー制御とかは一切していないコードですが、これで先ほど説明したTCPでXMLを投げた場合と同じことが出来ます。