Java

GroovyとQuartzとTwitter APIとTwitter4Jの甘い関係 #gadvent2011

G* Advent Calendar 2011の16日目です。

皆さんTwitterアイコンのローテーションはどうしていますか?
毎日0時に手作業でアイコンをアップデートするのは大変です。もっと早く寝ないとお肌に悪いです。

そこでGroovy、Quartz、Twitter4Jを使って自動でアイコンをアップデートするようにしましょう。
Groovyはそう、あのGroovy
QuartzはJavaでスケジューリングをするためのライブラリ、
Twitter4JはJavaからTwitter APIを呼び出すためのライブラリです。

コードは以下の通り。

CronTriggerというのはUnixのcronと似たフォーマットでスケジュールを設定できるもので、上記では毎日0時0分0秒にタスクを起動する設定になります。
# cronでは最小単位が分な気がするけどQuartzでは秒単位で設定できるみたい

twitter4j.propertiesをTimeAvatar.groovyと同じディレクトリ置いて実行すると毎日0時0分にyyyyMMdd.gifでTwitterアイコンをアップデートしてくれます。便利!

ちなみに最初はインターフェースが良い感じにスッキリしているcron4jを使ってみようと思いました。が、Maven Central Repositoryに置いてなかったのでQuartzを使いました。

あんまりGroovyっぽくないコードなのは許してください。セミコロンがないからGroovyです(`・ω・´)キリッ

明日は@nemo_kazです!

参考にした記事:
・Quartz scheduler example
http://www.mkyong.com/java/quartz-scheduler-example/

・システムアーキテクトのごった煮 – cron4jのご紹介
http://ameblo.jp/kozake/archive-201112.html