首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring定时器兑现

2012-11-26 
Spring定时器实现采用java.util.TimerTask实现,可以实现循环执行某任务,但不能实现指定时刻执行(可使用qua

Spring定时器实现

采用java.util.TimerTask实现,可以实现循环执行某任务,但不能实现指定时刻执行(可使用quartz Scheduler)。

可分为4个小部分:TimerFactoryBean,ScheduledTimerTask,CheckAlarmTask(具体执行的任务),对应的java类。也可以看做自上而下的4个层次。

配置文件(如application.xml)完成前三个部分的配置:

delay是定时器在应用部署后多长时间(毫秒)开启;

period是每隔多长时间(毫秒)执行一次。

可以看到控制序列如下:timerFactory → scheduledTask → checkAlarmTask → java类CheckAlarmTask。

import java.util.TimerTask;public class CheckAlarmTask extends TimerTask {    private AlarmRuleDAO alarmRuleDao;    private List<AlarmRule> alarmRules;    // 根据alarmrule表中的规则构造查询语句    public void run() {        System.out.println("开始检测是否需要告警...");        alarmRules = new ArrayList();        alarmRules = alarmRuleDao.selectAll();        for(Iterator<AlarmRule> i:alarmRules) {            //处理逻辑        }    }     public AlarmRuleDAO getAlarmRuleDao() {        return alarmRuleDao;    }    public void setAlarmRuleDao(AlarmRuleDAO alarmRuleDao) {        this.alarmRuleDao = alarmRuleDao;    }}



热点排行