読者です 読者をやめる 読者になる 読者になる

「Java」 Timer でタスクをスケジューリングする

Java であるタスクをスケジューリングして定期的に実行するサンプルのメモです。

タスクのスケジューリングは Timer#schedule で行います。タスクは TimerTask クラスを継承してオーバライドした run に記述します。

・Timer (Java Platform SE 8 )
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Timer.html

・TimerTask (Java Platform SE 8 )
https://docs.oracle.com/javase/jp/8/docs/api/java/util/TimerTask.html


あるファイルの存在をチェックする場合、以下の感じになります ( ファイルが存在した場合はプロセス落としてます )。

■ TimerTest.java

import java.io.File;
import java.util.Timer;
import java.util.TimerTask;

public class TimerTest {
  public static void main(String[] args) {
    Timer timer = new Timer("filePollingTimer");
    timer.schedule(
        new FilePollingTask("C:\\workspace44_2\\ZZZ\\file\\test.txt"),
        1 * 1000, 60 * 1000);
  }
}

class FilePollingTask extends TimerTask {
  private File file;

  public FilePollingTask(String fName) {
    file = new File(fName);
  }

  @Override
  public void run() {
    if (file.exists()) {
      System.out.println(file.getName() + " exist");
      System.exit(0);
    } else {
      System.out.println(file.getName() + " not exist");
    }
  }

}


簡単ですが、以上になります。

[ 環境情報 ]
Windows 7 SP1
Java SE 8 Update 25