JavaのQuartzライブラリで定義したジョブを定期的に実行する方法

JavaのQuartzライブラリで定義したジョブを定期的に実行する方法

Quartzライブラリを使ってジョブを定期的に実行することができます。Spring Batchでも似たことが可能です。

build.gradle

現時点で2.3.2が最新なので、バージョンは2.3.2で依存関係を解決します。

ジョブクラス作成

最初にジョブクラスを作成します。ジョブクラスはorg.quartz.Jobインタフェースをimplementsする必要があります。

これで標準出力するAJobクラスを作成しました。

JobDetailクラスのインスタンス生成

JobBuilderクラスからJobDetailクラスのインスタンスを生成します。newJobメソッドの引数はClass <? extends Job>です。

withIdentityの引数はJobKeyインスタンスでもよいです。

Triggerクラスのインスタンス生成

TriggerBuilder.newTrigger()メソッドでTriggerBuilderクラスのインスタンス生成します。

メソッドチェーンでwithIdentity("トリガー名", "所属グループ名")startNow()メソッドとするとジョブを登録後、そのジョブを即時実行します。

withSchedule()メソッドの引数に以下のように指定します。

このメソッドをチェーンしてTriggerインスタンス生成をします。

Schedulerクラスのインスタンス生成

Schedulerクラスのインスタンス生成はStdSchedulerFactory.getDefaultScheduler()メソッドで生成します。

ジョブ登録

SchedulerインスタンスのscheduleJobメソッドに引数を渡してジョブ登録します。

第一引数 第二引数
Jobのインスタンス Triggerのインスタンス

start()とshutdown()

ジョブを実行するにはorg.quartz.Schedulerをstart()メソッドでスタートさせます。

終了するにはshutdown()メソッドを実行します。

このstart~shutdownの間にジョブを実行することができます。

その為以下ではThread.sleep(10000);で10秒スリープさせています。

次回、org.quartz.JobListenerを使ってJobを監視します。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA