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秒の遅延が発生します。