• Java定时器


    代码

    
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
    
    public class TimerUtil implements ServletContextListener {
    
    
        @Override
        public void contextInitialized(ServletContextEvent servletContextEvent) {
    
            Calendar calendar = Calendar.getInstance();
            int year = calendar.get(Calendar.YEAR);
            int month = calendar.get(Calendar.MONTH);
            int day = calendar.get(Calendar.DAY_OF_MONTH);
            calendar.set(year, month, day, 00, 30, 00);
            // 当天00点30(默认执行时间)
            Date defaultdate = calendar.getTime();
            Date sendDate = null;
            if (defaultdate.before(new Date())) {
                // 若当前时间超过了defaultdate时间,当天不再执行,则将执行时间sendDate改为明天00点30
                calendar.add(Calendar.DATE, 1);
                sendDate = calendar.getTime();
            }else {
                // 若当前时间没有超过defaultdate时间,则将执行时间sendDate改为defaultdate
                sendDate = defaultdate;
            }
    
            /**
             * ----------------每日任务 ----------------
             * 启动服务器后,若此时时间没过00点30,等待。到了00点30自动执行一次,24小时后(第二天00点30)再执行一次,周而复始
             * 启动服务器后,若此时时间已经超过00点30,则等到24小时后(第二天00点30)才执行一次,周而复始
             */
            Timer dTimer = new Timer();
            dTimer.schedule(new TimerTask() {
    
                @Override
                public void run() {
    
                    System.out.println("每日任务已经执行");
                }
            }, sendDate, 24 * 60 * 60 * 1000);// 定时24小时:24 * 60 * 60 * 1000
            System.out.println("每日定时删除参会通知--已启动!--已启动!");
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent servletContextEvent) {
            System.out.println("每日定时删除参会通知 --已关闭!");
        }
    }
    
    

    在web.xml中设置监听文件

    <web-app>  
      <listener>
        <listener-class>  代码路径  </listener-class>
      </listener>
    </web-app>
    

    重新部署项目,启动tomcat即可自动执行

  • 相关阅读:
    12.使用正则表达式
    12/12
    thinkphp 5 及一下或php项目里实现模糊查询
    mysql中文乱码--存入mysql里的中文变成问号的解决办法
    ATOM使用的一点心得与技巧——在一个窗口打开多个项目
    php里的$this的 含义
    pycharm2017.3专业版激活注册码
    thinkphp3.2.3的使用心得之i方法(零)
    thinkphp3.2.3的使用心得(零)
    linux系统下phpstudy里的mysql使用方法
  • 原文地址:https://www.cnblogs.com/gkgkgk/p/15618755.html
Copyright © 2020-2023  润新知