Javaで定期的にタスクを実行する方法

いくつかのJavaアプリケーションは、一定の時間間隔の間にメソッドを実行する必要があります。たとえば、GUIアプリケーションはデータベースから情報を更新する必要があります。

1.スケジューラタスク

この機能のために、

  1. TimerTaskを拡張したクラスを作成する必要があります( `java.util`で利用可能です)

パッケージ)。 TimerTaskは抽象クラスです。

  1. 実行するpublic void `run()`メソッドにコードを記述してください

定期的に。

  1. メインクラスにコードを挿入します.

import java.util.TimerTask;
import java.util.Date;/** **
 **
 **  @author Dhinakaran P.
 ** ///Create a class extends with TimerTask
public class ScheduledTask extends TimerTask {

    Date now;//to display current time

   //Add your task here
    public void run() {
        now = new Date();//initialize date
        System.out.println("Time is :" + now);//Display current time
    }
}

2.スケジューラタスクを実行する

スケジューラータスクの上で実行するクラス。

  1. タイマーオブジェクトのインスタンス化 Timer time = new Timer();

  2. スケジュールタスククラスオブジェクトをインスタンス化する

ScheduledTask st =新しいScheduledTask(); 。 `Timer.shedule()`メソッドを通してスケジュールされたタスクを割り当てます。

import java.util.Timer;
/** **
 **
 **  @author Dhinakaran P.
 ** ///Main class
public class SchedulerMain {
    public static void main(String args[]) throws InterruptedException {

        Timer time = new Timer();//Instantiate Timer Object
        ScheduledTask st = new ScheduledTask();//Instantiate SheduledTask class
        time.schedule(st, 0, 1000);//Create Repetitively task for every 1 secs

       //for demo only.
        for (int i = 0; i <= 5; i++) {
            System.out.println("Execution in Main Thread...." + i);
            Thread.sleep(2000);
            if (i == 5) {
                System.out.println("Application Terminates");
                System.exit(0);
            }
        }
    }
}

出力:

Execution in Main Thread....0
Time is :Tue Jun 19 14:21:42 IST 2012
Time is :Tue Jun 19 14:21:43 IST 2012
Execution in Main Thread....1
Time is :Tue Jun 19 14:21:44 IST 2012
Time is :Tue Jun 19 14:21:45 IST 2012
Execution in Main Thread....2
Time is :Tue Jun 19 14:21:46 IST 2012
Time is :Tue Jun 19 14:21:47 IST 2012
Execution in Main Thread....3
Time is :Tue Jun 19 14:21:48 IST 2012
Time is :Tue Jun 19 14:21:49 IST 2012
Execution in Main Thread....4
Time is :Tue Jun 19 14:21:50 IST 2012
Time is :Tue Jun 19 14:21:51 IST 2012
Application Terminates
Time is :Tue Jun 19 14:21:52 IST 2012