栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

四步轻松搞定java web每天定时执行任务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

四步轻松搞定java web每天定时执行任务

本文介绍了java web每天定时执行任务,分享给大家,具体如下:

第一步:

package com.eh.util;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;

public class TimerManager {
 //时间间隔
  private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
  public TimerManager() {
   Calendar calendar = Calendar.getInstance();     
    
   calendar.set(Calendar.HOUR_OF_DAY, 16);
   calendar.set(Calendar.MINUTE, 10);
   calendar.set(Calendar.SECOND, 0);   
   Date date=calendar.getTime(); //第一次执行定时任务的时间
   System.out.println(date);
   System.out.println("before 方法比较:"+date.before(new Date()));
   //如果第一次执行定时任务的时间 小于 当前的时间
   //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。循环执行的周期则以当前时间为准
   if (date.before(new Date())) {
    date = this.addDay(date, 1);
    System.out.println(date);
   }   
   Timer timer = new Timer();   
   NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
   //安排指定的任务在指定的时间开始进行重复的固定延迟执行。
   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();
   }
}

第二步:

package com.eh.util;
 import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimerTask;
 

public class NFDFlightDataTimerTask extends TimerTask {
 private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 @Override
 public void run() {
  try {
    //在这里写你要执行的内容
   System.out.println("执行当前时间"+formatter.format(Calendar.getInstance().getTime()));
  } catch (Exception e) {
   System.out.println("-------------解析信息发生异常--------------");
  }
 } 
}

第三步:

package com.eh.util;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class NFDFlightDataTaskListener implements ServletContextListener {
 
 public void contextInitialized(ServletContextEvent sce) {
   new TimerManager();
 }
 
 public void contextDestroyed(ServletContextEvent sce) {
  // TODO Auto-generated method stub
   
 } 
}

第四步:配置web.xml文件



 com.eh.util.NFDFlightDataTaskListener

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/142278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号