servlet 定时操作,定时访问数据库,程序应该如何实现

 
  
public   class  TaskManager  implements  ServletContextListener  {
 
/**
  * 每天的毫秒数
  
*/

 
public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;
 
/**
  * 一周内的毫秒数
  
*/

 
public static final long PERIOD_WEEK = PERIOD_DAY * 7;
 
/**
  * 无延迟
  
*/

 
public static final long NO_DELAY = 0;
 
/**
  * 定时器
  
*/

 
private Timer timer;
 
/**
  * 在Web应用启动时初始化任务
  
*/

 
public void contextInitialized(ServletContextEvent event) {
        
//定义定时器
  timer = new Timer("数据库表备份",true); 
  
//启动备份任务,每月(4个星期)执行一次
  timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);
//  timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);
 }

 
/**
  * 在Web应用结束时停止任务
  
*/

 
public void contextDestroyed(ServletContextEvent event) {
  timer.cancel(); 
// 定时器销毁
 }

}


public   class  BackUpTableTask  extends  TimerTask 
 
private static Log log = LogFactory.getLog(BackUpTableTask.class); 
 
private static boolean isRunning = false
 
public void run() 
  
if (!isRunning) 
   isRunning 
= true
   log.debug(
"开始执行任务..."); //开始任务 
   
//working  add what you want to do 
   log.debug("执行任务完成..."); //任务完成 
   isRunning = false
  }
 else 
   log.debug(
"上一次任务执行还未结束..."); //上一次任务执行还未结束 
  }
 
 }
 
}

 

 

 

< listener >
  
< listener-class > ***.TaskManager </ listener-class >
  
< description > 要定期执行的任务 </ description >
 
</ listener >
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值