一个简单的java定时器

设置监听类和定时任务

 1 package com.liumai.timer;
 2 
 3 import java.text.ParseException;
 4 import java.util.Timer;
 5 import java.util.TimerTask;
 6 
 7 import javax.servlet.ServletContextEvent;
 8 import javax.servlet.ServletContextListener;
 9 
10 import com.liumai.business.util.MctsUtils;
11 
12 public class UpdateMemberDataTaskListener implements ServletContextListener
13 {
14     @Override
15     public void contextDestroyed(ServletContextEvent arg0)//timer销毁时执行
16     {
17         System.out.println("***************定时器销毁***************");
18     }
19 
20     @Override
21     public void contextInitialized(ServletContextEvent arg0)//在服务启动时执行
22     {
23         System.out.println("***************定时器启动***************");
24         new TimerManager();
25     }
26 }
27 
28 class UpdateMemberDataTimerTask extends TimerTask
29 {
30 
31     @Override
32     public void run()//定时操作要执行的方法
33     {
34         System.out.println("更新会员信息定时器测试:" + System.currentTimeMillis());
35     }
36 }
37 
38 class TimerManager
39 {
40     private static final long PERIOD_DATE = 24 * 60 * 60 * 1000;//一天执行一次
41     public TimerManager()
42     {
43         Timer timer = new Timer();//定时器实例化
44         UpdateMemberDataTimerTask task = new UpdateMemberDataTimerTask();//要执行的任务
45         //安排指定的任务在指定的时间,间隔指定的时间段执行任务
46         try
47         {
48             timer.schedule(task, MctsUtils.getStringDate(), PERIOD_DATE);//在0点执行
49         } catch (ParseException e)
50         {
51             e.printStackTrace();
52         }
53     }
54 }
MctsUtils工具类中的方法:
1 public static Date getStringDate() throws ParseException
2     {
3         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); // 设置时间格式
4         String todayStringDate = sdf.format(new Date()) ;//获得今天时间的0点 (例如:2017-09-14 00:00:00)
5         Date date = sdf.parse(todayStringDate);
6         return date;
7     }

在web.xml中配置:

1 <!-- timer task listener -->
2     <listener>
3         <listener-class>com.liumai.timer.UpdateMemberDataTaskListener</listener-class>
4     </listener>

此定时器是用来测试的,在每天0点执行。

参考:http://blog.csdn.net/anmoyyh/article/details/71516325

 
原文地址:https://www.cnblogs.com/kylyww/p/7520903.html