LoginSignup
0
0

More than 3 years have passed since last update.

Javaでcronのプログラムを作ろう!!(TaskScheduler)

Last updated at Posted at 2020-09-17

Java(cron4j)

・cronとは、多くのUNIX系OSで標準的に利用される常駐プログラム(デーモン)の一種で、利用者の設定したスケジュールに従って指定されたプログラムを定期的に起動してくれるもの。(*IT用語辞典参照)

jar

下記リンクからjarファイルをダウンロードしてIDEに設定しよう!!
https://www.sauronsoftware.it/projects/cron4j/download.php

Taskクラス

まず、実行したい処理を書くクラスを作ろう!!

CronTask
import java.util.Date;

public class CronTask implements Runnable{

    @Override
      public void run() {
        System.out.println(new Date()+": Hiiiii! cron4j!");
      }

}

Schedulerクラス

MyCronAppTest
import it.sauronsoftware.cron4j.Scheduler;

public class MyCronAppTest {

      public static void main(String[] args) {
        MyCronAppTest app = new MyCronAppTest();
        try {
          app.schedulerSimple();
          System.out.println("Press Ctrl+C to stop.");
          Thread.sleep(100000000);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }

      public  void schedulerSimple() {
        Scheduler scheduler = new Scheduler();
        // every minute.
        scheduler.schedule("* * * * *", new CronTask());
        // start cron4j scheduler.
        scheduler.start();
      }
}

おまけ(Servletを使ったScheduler)

HelloServlet
import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import it.sauronsoftware.cron4j.Scheduler;

public class HelloServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

        public  void schedulerSimple() {
        Scheduler scheduler = new Scheduler();
        // every minute.
        scheduler.schedule("* * * * *", new CronTask());
        // start cron4j scheduler.
        scheduler.start();
      }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        MyCronApp app = new MyCronApp();
        try {
          app.schedulerSimple();
          System.out.println("Press Ctrl+C to stop.");
          Thread.sleep(100000000);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
        response.getWriter().append("Hello Servlet");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0