zoukankan      html  css  js  c++  java
  • 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即可自动执行

  • 相关阅读:
    [leetcode] Copy List with Random Pointer
    [leetcode] Single Number II
    团队项目NABCD模型的需求分析
    团队项目的分工及绩效评估方法
    软件工程结对作业实验报告
    Java jdbc链接 mySQL 写的crud
    从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0的解决方案
    红黑树简介
    再学HTML之一
    Java script 的dom编程
  • 原文地址:https://www.cnblogs.com/gkgkgk/p/15618755.html
Copyright © 2011-2022 走看看