zoukankan      html  css  js  c++  java
  • 一个简单的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

     
  • 相关阅读:
    List
    美团Leaf分布式ID生成策略
    单点登陆
    ElasticSearch
    Eureka
    Nginx
    UML
    Computer English
    加密
    Excel中把一列数据转换成逗号隔开的一行
  • 原文地址:https://www.cnblogs.com/kylyww/p/7520903.html
Copyright © 2011-2022 走看看