Create: 2013/05/06
LastUpdate: 2013/05/20
下図の環境を使用します。
環境の詳細を知りたい場合は、メニューに戻って構築手順を参照してください。
JobScheduler の外部APIを利用すると、ジョブの実行や登録などの操作を自分のアプリケーションから行うことができます。
ここでは、jetty で 外部API(XMLコマンド) を使用してみます。
jetty は、JobScheduler に組み込まれた Webサーバです。
手順については、「JobSchedulerFAQ 」を参考にしました。
コマンド送信のURL
jetty を利用してXMLコマンドを実行する場合は、以下のURLを使用します。
XMLコマンドは、HTTP GET または POST で指定できます。
- http://<IPアドレス>:44440/jobscheduler/engine-cpp/
- https://<IPアドレス>::8443/jobscheduler/engine-cpp/ ※通信を暗号化
HTTP GET でコマンド実行
HTTP GET でXMLコマンドを実行する場合は、以下の形式でリクエストします。
赤字部分が XMLコマンドです。
http://<IPアドレス>:44440/jobscheduler/engine-cpp/<show_state/>
実際にリクエストする場合は、XMLコマンドは、URLエンコードする必要があります。以下は、curl コマンドを使用した例です。php で URLエンコードしています。
$ curl http://192.168.1.61:44440/jobscheduler/engine-cpp/`php -r 'print urlencode("<show_state/>");'`HTTP GET は、短いXMLコマンドを実行するときに使用するのがいいと思います。
HTTP POSTでコマンド実行
HTTP POST で以下のジョブ登録用のXMLコマンドを実行してみます。
<add_jobs> <job name="myJob" title = "my first job"> <script language="shell"> <![CDATA[ echo "myJob is running." ]]> </script> <run_time> <period single_start="18:00"/> </run_time> </job> </add_jobs>
このコマンドを "xxx.xml" ファイルに保存して、curl コマンドで実行すると以下のようになります。
# curl http://192.168.1.61:44440/jobscheduler/engine-cpp/ -X POST -d @./xxx.xml <?xml version="1.0" encoding="ISO-8859-1"?> <spooler> <answer time="2013-05-06 09:59:56.748"> <ok/> </answer> </spooler>下図はJOCで登録されたジョブを見たところです。
XMLコマンドで登録したジョブは、JobSchedulerを再起動すると、消えます。
永続的なジョブ登録をしたい場合は、JOEなど使用してXMLファイルを作成し、liveフォルダに配置します。