Tech Sketch Bucket of Technical Chips by TIS Inc.

オープンソースなジョブ管理ツール SOS JobScheduler を使ってみよう -- ジョブ実行編 --

Pocket

この記事はeXcale Developer's Blogから移転されたものです。


eXcale 開発チームの冨樫です。

前回SOS JobScheduler の環境構築を行いました。今回は実際にジョブを定義し、JOC(JobScheduler Operating Center) 上でジョブの動作確認を行います。


今回ご紹介する内容の題目です

  • ジョブ定義ファイル作成
  • ジョブの動作確認
  • JOCでジョブを操作

ジョブ定義ファイル作成

前回のブログ での環境構築が済んでいる前提で説明致します。まだ、環境構築ができていない場合は、前回のブログをご参照下さい。

ジョブの定義は JobScheduler のコンポーネントである JOE(JobScheduler Object Editor) を使うことで GUI で作成することができます。ただ、作成されるジョブ定義のファイル形式は XML なのでエディタでも作成可能です。今回は JobScheduler を使ってみることを目的としているので、JOE は使わずに、エディタでシンプルなジョブの定義を作成します。

それでは、ジョブ定義ファイルを作成して行きましょう。

ファイルの作成場所ですが、JobScheduler は "$SCHEDULER_HOME/config/live/" 配下に置かれたジョブ定義ファイルを動的に取り込んでくれるので、そこに直接ジョブ定義ファイルを作成します。

ファイル名は "<ジョブ名>.job.xml" となるように作成してください。
※ 間違えると取り込まれないので注意してください!

下記の場合は hello_world がジョブ名になります。

ジョブ定義ファイルにはサンプルとして下記の XML を入力してください。

サンプルでは、まず job タグを作成し、その中に実行したい処理(scriptタグ)と実行時刻(run_timeタグ)を定義しています。それぞれのタグについての概要は以下の通りです。

◆ job タグ
ジョブを定義します。実行する時刻や、スクリプト等を設定できます。
詳細:http://www.sos-berlin.com/doc/en/scheduler.doc/xml/job.xml

◆ script タグ
実行するスクリプトを定義します。使用言語は以下の通りです。今回は Shell を使用しています。
上記サンプルでは、echo で標準出力先(Jobscheduler 上のログ)に "Hello World!" を出力のみの処理になります。
対応言語:Java, JavaScript, Perl, Shell, VBScript(Windowsのみ)
詳細:http://www.sos-berlin.com/doc/en/scheduler.doc/xml/script.xml

◆ run_time タグ
実行する時刻を定義します。毎時/日次/月次での指定や、休日に実施するかしないか等の設定が行えます。
上記サンプルでは、1分毎に実行する設定になっています。
詳細:http://www.sos-berlin.com/doc/en/scheduler.doc/xml/run_time.xml

もちろん、サンプルで使用している以外のタグも多数用意されています。
詳細については こちら をご参照ください。

ジョブの動作確認

では、ジョブが正しく登録されているか確認してみましょう。
ブラウザから JobScheduler サーバにアクセスしてください。

http://サーバアドレス:4444/

JOC(JobScheduler Operating Center) の Web画面が表示されたら、Jobs タブを選択してください。

先ほど作成したジョブが登録されていることを確認してください。
表示されていない場合は Web画面右上の "Update" ボタンをクリックしてください。それでもジョブが登録されない場合は、ファイル名のフォーマット(<ジョブ名>.job.xml)に間違いが無いか再度確認してください。

ジョブ名の横に緑で書かれている "Next start" はその名の通り、ジョブが次に実行される時刻です。括弧書きには、実行されるまでの残り時間が表示されます。

次にジョブが正しく実行されているかを確認します。
登録したジョブを選択すると、画面右側にそのジョブの情報が表示されます。

表示されたら、Task History タブを選択し、その中に記載されている "period_repeat" を選択してください。

そうすると、ジョブを実行した時のログが、別ウィンドウに表示されます。

"Hello World!"が記載されていることを確認できれば、動作確認完了です!

JOCでジョブを操作

JOC では動作の確認以外にも、ジョブの実行タイミングの変更やジョブの実行を止めること等ができます。

ジョブの実行を止める場合であればジョブを右クリックし "Stop" を選択するだけです。

次に実行タイミングを変更してみましょう。
ジョブの実行を止めた場合と同様に、ジョブを右クリックし、 "Set run time" を選択します。

そうすると、run_time についてのジョブ定義が表示されるので、適当な値に変更し "submit" ボタンをクリックします。

以上で、実行タイミングについての修正が完了です。
では、ジョブを右クリックし "Unstop" を選択して、ジョブの実行を確認してみましょう。

上記の通り、実行タイミングが変更されていることが確認できたら完了です。
このように、JOC では簡単にジョブを操作することができます。


最後に

今回は SOS JobScheduler で実際にジョブを実行してみました。JOC については紹介できていない機能もありますが、わかりやすい UI になっているので実際に色々と触ってみるのも良いかと思います。JobScheduler はオープンソースでかつ、機能が豊富なジョブ管理ツールなので、ジョブ管理ツールを検討中であれば是非使ってみてください。

エンジニア採用中!私たちと一緒に働いてみませんか?