- blogs:
- cles::blog
« Jawbone UP3 が壊れた :: 肉の切り方 日本橋本店 »
2017/09/28

Quartz で定期的にタスクを実行する


Java のアプリケーション内で特定の動作を特定の日時に実行するためには cron のような機能を自力で実装する必要があります。
今回はそんな機能をお手軽に実現できる Quartz Enterprise Job Scheduler というライブラリを使って実現してみました。
Quartz には Cron Trigger という機能があり、cron のような書式で実行タイミングを制御する機能があります。通常の cron は分単位ですが、こちらは1桁設定が細かくなっていて秒単位でのタスク実行が可能です。例えば 「0/5 * * * * ?」のような指定をすると5秒ごとにタスクを実行することができます。
† Quartz の使い方
Quartz を使うためにはタイミングを指示するための Trigger と定期実行される実体となる Job という2つのクラスが必要になります。
今回は5秒ごとにログ出力を行うような超簡単な例になりますが Maven のプロジェクトとして hsur/QuartzExample にアップロードしておいたので、興味がある方はお試しください。
実際に実行してみると、以下のように5秒ごとにログ出力されることが確認できます。
[INFO] 28 9 10:08:08.313 午前 main [jp.cles.java.QuartzExample.App] Group1.MyJob1 は Fri Sep 28 10:08:10 JST 2017 に実行するようにセットアップされました。
右の cron 定義に従って繰り返し実行されます: 0/5 * * * * ?
[INFO] 28 9 10:08:08.313 午前 main [org.quartz.core.QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
[INFO] 28 9 10:08:10.015 午前 DefaultQuartzScheduler_Worker-1 [jp.cles.java.QuartzExample.MyJob] Group1.MyJob1 は Fri Sep 28 10:08:10 JST 2017 に起動されました
[INFO] 28 9 10:08:15.003 午前 DefaultQuartzScheduler_Worker-2 [jp.cles.java.QuartzExample.MyJob] Group1.MyJob1 は Fri Sep 28 10:08:15 JST 2017 に起動されました
[INFO] 28 9 10:08:20.002 午前 DefaultQuartzScheduler_Worker-3 [jp.cles.java.QuartzExample.MyJob] Group1.MyJob1 は Fri Sep 28 10:08:20 JST 2017 に起動されました
† 実際のコード
App.java
MyJob.java
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9655
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
« Jawbone UP3 が壊れた :: 肉の切り方 日本橋本店 »
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(111998)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110627)
3 . 年次の人間ドックへ(110257)
4 . 2023 年分の確定申告完了!(1つめ)(109805)
5 . 三菱鉛筆がラミーを買収(109703)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110627)
3 . 年次の人間ドックへ(110257)
4 . 2023 年分の確定申告完了!(1つめ)(109805)
5 . 三菱鉛筆がラミーを買収(109703)
cles::blogについて
Referrers