年の功より亀の甲

カメがプログラミングとか技術系について書くブログです。

jobschedulerについてー紹介編ー【ころなとサリー AdventCalendar 2015/12/9】

お仕事で使ったシリーズ2回目だよ。

2日ぶりのころなです。
今回は、前回の記事と同様にお仕事で使ったOSSのお話でjobscheduler編になります。
趣向を変えて、このたびは、jobschedulerについて紹介をしていきます。

jobschedulerとは

端的にいうと、OSSのジョブスケジューラソフトです。
ドイツのSoftware Open Source社(https://www.sos-berlin.com/)が開発したソフトウェアになります
Windowslinuxについては、ossの無料版が提供されています。
業務の案件では、linux版を利用していました。
今回の特集記事では、windows版を利用していきます。

用途の例を教えて!?

所謂バッチ処理で利用しますが、業務で使った時の感触でいくと、下記のようなものと相性がいいという印象でした。

  • リアルタイムで集計するには、処理が重い
  • 他のデータベースでの処理が完了している場合だけ動かしたい(ジョブチェーン)
  • 週末だけ社員が休んでいるから動いてほしい
  • XMLで管理されているのでディレクトリを決めてしまえば、インフラ権限がなくてもジョブ管理ができる etc
  • 監視ツールと連携ができるため、サーバに障害があった場合に通知を取得することができる
  • サーバ障害などで、動かなかったジョブをGUIから将来的に再実行できるような基盤を置いときたい。

利用した時の構成は?

ざっくりと説明すると、3つのレイヤーになります。

  • 実行するプログラムの各種設定が記載されているXMLファイルを管理するバージョン管理サーバ(Git)
  • 実際のジョブを実行するWEBサーバ
  • 各種ジョブの実行結果や履歴を取っておくデータベースサーバ

下記に概念的にはなりますが、jobschedulerを動かした時のサーバ構成を貼っておきます。

f:id:sakuriver:20151210004514p:plain

感想

  • 普段cronを利用している自分からすると、導入のコストはかなり大きくい
  • 設定情報をXMLファイルで管理することができるのはプログラマとしては楽で安心感があった
  • 実行結果がDBにあったり、他の監視ツールと連携してメール通知ができるのは大きい
  • apiを叩くと次回の実行予定等を取得できるのでUIを整えれば、エンドユーザー側でも確認したりすることが可能

次回

ジョブスケジューラのインストールから、GUIツールを開くところまでやっていこうと思います。
楽しみにしていってね(/・ω・)/