Quartz

org.springframework.scheduling.quartz を眺める

しかしspringframeworkがわからないからどんな感じで動作してるのかよーわからん。何とかBeanがいっぱいある。既存のロジッククラスの任意のメソッドのスケジューリングができるっぽいので結構興味あり。Quartz自身はなんとなく雰囲気が掴めたのでおっかける…

ちょっと気になるファイル、その名はjob.xml

で調べてみたら、JobInitializationPluginなんてのがいて設定ファイルからJob/Triggerを読み込んでくれます。 org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin org.quartz.plugin.jobInitializer.fileName = jobs…

SchedulerFactory 続き

ここでやっとJobの登録。 long ts = TriggerUtils.getNextGivenSecondDate(null, 15).getTime(); いきなりご登場のTriggerUtilsはTriggerに対するユーティリティクラス。このgetNextGivenSecondDateってのは指定Dateから指定秒数経過後のDateを返してくれる…

SchedulerFactory

サンプルプログラム:SchedTestを弄ることにした。 // mainにて schedTest(new org.quartz.impl.StdSchedulerFactory()); まずはSchedulerFactoryを調べてみる。デフォルト実装としてStdSchedulerFactoryが提供されている。ほとんどの場合こいつを使えば事足…

JobStores

数あるJobStoreの違いを理解し、適切な選択を行いなさいと書いてあるっぽい。プロパティファイルで設定ができるらしい。SchedulerFactoryなんてのも出てきてる。JobStoreは裏方さんだからおまえのコード中で直接使うなと言ってらっしゃる。結局何者なのかは…

SchedulerListeners

こいつはこんなイベントを受け取る。 ・Trigger/Jobの追加、削除 ・Schedulerの深刻なエラー ・Schedulerのシャットダウン、その他 Globalとかnon Globalの区別はない。org.quartz.SchedulerListenerを実装する。

TriggerListeners and JobListeners

それぞれ以下のイベントを受け取る。 TriggerListener ・Triggerのfire/miss-fire ・Triggerの終了 JobListener ・Jobの実行 ・Jobの終了 リスナの作成はorg.quartz.TriggerListener、org.quartz.JobListenerを実装する。 リスナは必ず名前を持つ→getName()…

Job Scheduling in Javaを読む(ってか打てよ!!)

スケジューリングされたタスクの例とかJavaのTimerを使った場合のサンプル等…そして本題へ >Beyond the Ordinary とりあえずQuartzの利点が紹介されている。ダイナミックなトリガ、PersistentなJob等。どうやらレポートツールを作っていきながらQuartzを解説…

Miscellaneous Features

>Plug-Ins いわゆるプラグインでどうこうができるらしい。詳細はorg.quartz.plugins パッケージのドキュメントを見なさい、と。 >Jobs メール送信とかEJBのinvokeとかのユーティリティJobsがあるんだってさ。org.quartz.jobs にあるってさ。メール送信は、or…

Advanced (Enterprise) Features

>Clustering org.quartz.jobStore.isClusteredをtrueにして使うらしいんだけど、差し当たり必要ではないので無視1 >JTA Transactions org.quartz.scheduler.wrapJobExecutionInUserTransactionがどうとか…正直JTAは理解していないのでようわかりません。

Configuration, Resource Usage and StdSchedulerFactory

ってことでこいつらの設定が必要です、と。 ・ThreadPool ・JobStore ・DataSources (if necessary) ・The Scheduler itself >ThreadPool 適切なサイズを見極めて設定しなさい、と。Poolが空だと待ち時間が発生するからmiss-fireになっちゃうこともあるんだ…

続き…

2.Tutorialを読んでみる ->More About Jobs & JobDetailsJobは直接Scheduleにセットできないため、JobDetailsに格納して渡す。JobDetailsにはJobの名前/グループ等の情報を設定する。Jobの再利用のために分けてるのかな…。JobDetailsにはJobのClassを渡し…

さらに続き…

->More About Triggers ・Calendars java.util.Calendarクラスではなく、org.quartz.Calendarインタフェース。Triggerのfireに日時等を指定する場合に使用する。org.quartz.impl.HolidayCalendarなんて実装があるらしい。・Misfire Instructions たとえば、S…

とりあえずやってみよう

以前から試してみようとは思っていたがついついほったらかしにしていたので少しずつ試してみる。いわゆる入門記なのだろうか…1.DL 1.4.0が手元にあったが、サイトをみると1.4.1が置いてあった。特にアナウンスもないのだが、とりあえずreleaseNotes.txtを…