Web定时器

  1. package test;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.Locale;
  5. public class TimeTest {
  6.     public static int getLocaleHour(){
  7.         int hour = 0;
  8.         Date date = new Date();
  9.         Calendar calendar = Calendar.getInstance(Locale.CHINA);
  10.         calendar.setTime(date);
  11.         hour = calendar.get(Calendar.HOUR_OF_DAY);
  12.         return hour;
  13.     }
  14.     
  15. }

HxjTimerTask.java

  1. package test.timer;
  2. import java.util.TimerTask;
  3. import javax.servlet.ServletContext;
  4. import test.TimeTest;
  5. public class HxjTimerTask extends TimerTask {
  6.     private boolean isRunning = false;
  7.     
  8.     private boolean flag = true;
  9.     
  10.     private static int C_SCHEDULE_HOUR = 9;
  11.     
  12.     private ServletContext context = null;
  13.     
  14.     public HxjTimerTask(ServletContext context) {
  15.         super();
  16.         this.context = context;
  17.     }
  18.     @Override
  19.     public void run() {
  20.         if(!isRunning){
  21.             if(C_SCHEDULE_HOUR == TimeTest.getLocaleHour() && flag){
  22.                 isRunning = true;
  23.                 context.log("开始执行任务");
  24.                 int i = 0;
  25.                 while(++i <= 10){
  26.                     try {
  27.                         Thread.sleep(1000);
  28.                     } catch (InterruptedException e) {
  29.                         // TODO Auto-generated catch block
  30.                         e.printStackTrace();
  31.                     }
  32.                     context.log("已经执行完任务的:"+i+"/10");
  33.                 }
  34.                 flag = false;
  35.                 isRunning = false;
  36.                 context.log("任务执行完成");
  37.             } 
  38.         } else {
  39.             context.log("上次任务还未执行完毕");
  40.         }
  41.         if(C_SCHEDULE_HOUR != TimeTest.getLocaleHour()){
  42.             flag = true;
  43.         }
  44.     }
  45.     
  46. }

HxjListener.java

  1. package test.timer;
  2. import java.util.Timer;
  3. import javax.servlet.ServletContextEvent;
  4. import javax.servlet.ServletContextListener;
  5. public class HxjListener implements ServletContextListener {
  6.     
  7.     private Timer timer = null;
  8.     public void contextInitialized(ServletContextEvent event) {
  9.         this.timer = new Timer(true);
  10.         event.getServletContext().log("启动hxj定时器");
  11.         timer.schedule(new HxjTimerTask(event.getServletContext()), 0,10000);
  12.         event.getServletContext().log("已经添加任务调度表");
  13.     }
  14.     public void contextDestroyed(ServletContextEvent event) {
  15.         this.timer.cancel();
  16.         event.getServletContext().log("关闭hxj定时器");
  17.     }
  18. }

TimeTest.java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值