Hatena::Groupprogram

ひとり開発日記。 このページをアンテナに追加 RSSフィード

2015/08/30 (Sun)

Guice + Quartz Scheduler で定時起動アプリケーション

|  Guice + Quartz Scheduler で定時起動アプリケーション - ひとり開発日記。 を含むブックマーク はてなブックマーク -  Guice + Quartz Scheduler で定時起動アプリケーション - ひとり開発日記。

  1. 定時起動する、バッチ処理を作りたい
  2. Cron 形式の時刻指定で書きたい
  3. Google Guice ベースで作りたい
  4. TomcatにWARを放り込んだら、直ぐ動くようなものを作りたい

早い話、Seasar2にあった、S2Chronosみたいなのを、Google Guiceベースで作りたいと思ったのです。*1 でも、案の定、日本語情報が無い…。*2

参考にしたのは、以下。

web.xml

<servlet>  
    <servlet-name>QuartzInitializer</servlet-name>  
    <display-name>Quartz Initializer Servlet</display-name>  
    <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>  
    <init-param>  
        <param-name>config-file</param-name>  
        <param-value>/quartz.properties</param-value>  
    </init-param>  
    <init-param>  
        <param-name>shutdown-on-unload</param-name>  
        <param-value>true</param-value>  
    </init-param>  
    <init-param>  
        <param-name>start-scheduler-on-load</param-name>  
        <param-value>true</param-value>  
    </init-param>  
</servlet>

org.quartz.ee.servlet.QuartzInitializerServletクラスのソースの中を見たら、StdSchedulerFactoryのインスタンスを作ったりしてたので、ここらへんは、GuiceのDI設定でやればいいかな、って感じですかね。

で、試しに作ったコードは GitHubリポジトリ作って、置きました。*3

*1トランザクション管理とかやりたいしね。

*2:結局、Stack Overflowを漁ることに…。

*3:何気に初GitHub。 普段はBitBucketだから…

トラックバック - http://program.g.hatena.ne.jp/halflite/20150830