2017/08/04 (Fri)
Guice + Quartz Scheduler + Jetty で定時起動アプリケーション
2年前位、Google Guice + Quartz Schedulerで定時起動アプリのサンプルを書いたんですけど*1 久々GitHubを見たら、星が何個か付いている!!!*2 まぁ、Guice/Quartzと言う組み合わせ自体、ちょっとレア過ぎて、他に例が無かったからかもしれませんけど…。
当時は、WARを作って、それをTomcatとかのコンテナに放り込む、と言うのは普通だったんですけど、今は組み込みコンテナを使って、FatJARで自立/自走するのが主流ですよね。
という事なので、Embedding Jettyを使って、設定ファイル無しスタイル*3 *4 で、もう一個サンプルプログラムを書いてみました。
まぁ、メインは殆ど QuartzModule クラスで、ここで JobFactory / SchedulerFactory / Scheduler の設定と発火を行っているので、そこを参照して頂ければ、ほぼオッケーでしょうか。 Job クラスも Guice コンテナ管理下にあるんで、必要に応じて、AOPやトランザクション管理とか書いてみても良いでしょう。
でも、 Quartz Scheduler もヴァージョンが上がって、いつの間にか、殆ど Builder Pattern/Fluent Interface*5で設定出来るようになったんだ…、とオモシロでしたね。
*1: Guice + Quartz Scheduler で定時起動アプリケーション - ひとり開発日記。 - プログラマの秘密のあれこれ
*3:所謂 The Twelve-Factor App スタイル https://12factor.net/ja/
*4:Heroku https://www.heroku.com/ で動かすことを想定しています