Spring + JDK Timerスケジューラの例
Note
JDK Timer scheduler example without Springを学習し、この例との違いを比較します。
この例では、SpringのスケジューラAPIを使用してタスクをスケジュールします。
1. スケジューラータスク
スケジューラータスクを作成…
package com.example.common; public class RunMeTask { public void printMe() { System.out.println("Run Me ~"); } }
Springには、JDK TimerTaskの代わりにMethodInvokingTimerTaskFactoryBeanが付属しています。 ここで呼び出すターゲットスケジューラオブジェクトとメソッドを定義できます。
Springには、JDKタイマーの代わりにScheduledTimerTaskが付属しています。 ここでスケジューラー名、遅延、および期間を渡すことができます。
2. TimerFactoryBean
最後に、TimerFactoryBean Beanを設定して、スケジューラタスクを開始できます。
ファイル:Spring-Scheduler.xml
それを実行します
package com.example.common; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main( String[] args ) { ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Scheduler.xml"); } }
コードはスケジューラタスクを呼び出す必要はありません。TimerFactoryBeanは起動時にスケジュールタスクを実行します。 その結果、Springスケジューラーは60秒ごとにprintMe()メソッドを実行し、最初の実行では1秒の遅延が発生します。