Spring JDKタイマースケジューラの例

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

ソースコードをダウンロード