java web每天定时任务

来源:互联网 发布:卫视软件下载 编辑:程序博客网 时间:2024/06/08 14:41
<span style="font-family: Arial, Helvetica, sans-serif;"></span>
<span style="font-family: Arial, Helvetica, sans-serif;">import java.util.Calendar;</span>
<span style="font-size:12px;">import java.util.Date;import java.util.Timer;public class TimerManager {    //时间间隔    private static final long PERIOD_DAY =  24 * 60 * 60 * 1000;        public TimerManager() {//        Timer timer = new Timer();//         //        TestTimerTask task = new TestTimerTask();//        //安排指定的任务在指定的时间开始进行重复的固定延迟执行。//        timer.schedule(task, new Date(), PERIOD_DAY);         Calendar calendar = Calendar.getInstance();                   /*** 定制每日8:30执行方法 ***/         calendar.set(Calendar.HOUR_OF_DAY, 8);         calendar.set(Calendar.MINUTE, 30);         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();                   TestTimerTask task = new TestTimerTask();         //安排指定的任务在指定的时间开始进行重复的固定延迟执行。         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(); }}</span>

第二

<span style="font-size:14px;">import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.TimerTask;/** * @author deerw13 * */public class TestTimerTask extends TimerTask {    private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    @Overridepublic void run() {// TODO Auto-generated method stub        try {                          URL urld = new URL("http://localhost:8081/getFollowCurDateDoctor.do");//controller             HttpURLConnection urlcond = (HttpURLConnection)urld.openConnection();             InputStream isd = urlcond.getInputStream();                     System.out.println("执行当前时间"+formatter.format(Calendar.getInstance().getTime()));        } catch (Exception e) {            System.out.println("-------------解析信息发生异常--------------");            e.printStackTrace();        }}}</span><span style="font-size:24px;"></span>

第三

<span style="font-size:14px;">import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import com.xxx.timer.TimerManager;public class TimerListener implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent arg0) {}@Overridepublic void contextInitialized(ServletContextEvent arg0) {new TimerManager();}}</span><span style="font-size:24px;"></span>
第四 配置web.xml文件

<span style="font-size:14px;"><!--NFDFlightDataTaskListener 监听器--><listener>    <listener-class>com.xxx.listener.TimerListener</listener-class>  </listener></span>



0 0