>Java >java지도 시간 >Java 웹 예약 작업 구현 코드

Java 웹 예약 작업 구현 코드

不言
不言원래의
2018-09-21 10:58:282410검색

이 기사의 내용은 Java 웹 예약 작업의 구현 코드에 관한 것입니다. 특정 참조 값이 있으므로 도움이 될 수 있습니다.

앞에 쓰기:

 최근 프로젝트에서는 데이터베이스를 확인해야 합니다. 매일 정기적으로 테이블을 쿼리하고 관련 데이터의 업데이트 작업을 완료합니다. 가장 먼저 떠오르는 것은 Timer 클래스입니다. 이전 시스템을 처음 유지 관리할 때 타이밍 작업도 포함하는 인터페이스를 열었던 기억이 납니다. 다음 작업에 사용할 때 다시 쉽게 찾을 수 있도록 일반적인 사용법을 아래에 기록해 놓았습니다.

 웹에서 사용하기 때문에 프로젝트가 시작되면 이 예약된 작업이 실행되어야 합니다. 초기화될 때 이 타이머 프로그램을 실행합니다. 시간이 오면 타이머 프로그램에서 해당 실행 시간과 필요에 따라 실행해야 하는 작업 클래스를 설정합니다.

 1 먼저 실행해야 하는 작업 클래스를 작성합니다.

public class DailyReportTimerTask extends TimerTask{
    public static Logger logger=Logger.getLogger(DailyReportTimerTask.class);
    public void run() {
        System.out.println("----开始执行任务--------------");
    }
}

 작업 클래스는 상속해야 합니다. TimerTask. 이 점을 주의해주세요

 2. 작업 유형, 프로그램 시작 시간 및 빈도를 관리하는 클래스를 작성합니다

public class TimeManager {
    public static Logger logger=Logger.getLogger(TimeManager.class);
    //时间间隔
    private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;  //24小时执行一次
    public TimeManager() {
      
       Calendar calendar = Calendar.getInstance();  
       /*** 定制每日23:10执行方法 ***/
       calendar.set(Calendar.HOUR_OF_DAY, 23);
       calendar.set(Calendar.MINUTE, 10);
       calendar.set(Calendar.SECOND, 0);
       Date date=calendar.getTime();
       System.out.println(date);

       //如果第一次执行定时任务的时间 小于 当前的时间
       //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。循环执行的周期则以当前时间为准
       if (date.before(new Date())) {
           date = this.addDay(date, 1);
           System.out.println(date);
       }
      
       Timer timer = new Timer();
    DailyReportTimerTask task = new DailyReportTimerTask();

       //安排指定的任务在指定的时间开始进行重复的固定延迟执行。
       timer.schedule(task,date,PERIOD_DAY);
      }

      //增加几天
      public Date addDay(Date date, int num) {
       Calendar startDT = Calendar.getInstance();
       startDT.setTime(date);
       startDT.add(Calendar.DAY_OF_MONTH, num);
       return startDT.getTime();
      }
}
#🎜🎜 #​ web.xml 파일에 해당 리스너를 구성합니다.

public class DailyReportListener implements ServletContextListener{
    public void contextDestroyed(ServletContextEvent arg0) {
    
    }
    public void contextInitialized(ServletContextEvent arg0) {
        new TimeManager();
    }

}

웹에서 예정된 작업을 완료하는 프로그램을 개발하는 것은 대략 다음과 같습니다. 비즈니스 프로그램 실행, 자신의 프로젝트에 따라 완료하면 됩니다.

위 내용은 Java 웹 예약 작업 구현 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.