Home> Java> javaTutorial> body text

Java web scheduled task implementation code

不言
Release: 2018-09-21 10:58:28
Original
2314 people have browsed it

The content of this article is about the implementation code of java web scheduled tasks. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

Write in front:

In recent projects, it is necessary to query the database table regularly every day and complete the related data Update operation. The first thing that comes to my mind is the Timer class. I remember that when I first maintained the old system, I opened an interface, which also involved timing operations. The general usage is recorded below so that it can be easily found again when used in subsequent work.

Since it is used in the web, when the project is started, this scheduled task should be run. A listener is used here, and it will be run when it is initialized. This timer program, and then in the timer program, set the corresponding execution time and the task class that needs to be executed according to your own needs.

1. First write the task class we need to execute

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

The task class needs to inherit TimerTask, this should be noted

 2. Write a class to manage the task type, time and frequency of program start running

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(); } }
Copy after login

3. In order to allow the project to be initialized, just To run this scheduled program, you can use the listener

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

4. The last step is to configure the corresponding listener

  edu.hue.erp.util.timer.DailyReportListener 
Copy after login
## in the web.xml file

# Developing a program to complete scheduled tasks in the web is roughly like this. For the specific execution of the business program, you need to complete it according to your own project.

The above is the detailed content of Java web scheduled task implementation code. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!