论坛首页 Java企业应用论坛

定时器的问题:用spring配置了一个定时器,为什么有时定时器突然不运行了?

浏览 6178 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-11-26  
项目需要一个定时任务区扫描数据库,发送消息
现在碰到一个问题,定时器有时突然不运行了,这时只能重新启动服务,不知道大家有没有碰到过这种情况
请多多指点,谢谢!

定时器的代码
public class SynContentTask extends TimerTask {
    private static Logger log = Logger.getLogger(SynContentTask.class);
    private ContentFacade contentFacade;

    public void setContentFacade(ContentFacade contentFacade) {
        this.contentFacade = contentFacade;
    }

    public void run() {
        log.debug("--- 定时任务开始扫描");
        // 查询待发布表
        List list = null;
        try {
            list = this.contentFacade.querySynTask();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            log.error("--- 查询任务列表失败 ---");
            e.printStackTrace();
        }
        if (null != list) {
            log.debug("--- 获取同步任务,本次有 " + (list.size()) + " 个内容需要同步 ---");
            for (Iterator iter = list.iterator(); iter.hasNext();) {
                CtPubSynTaskVO task = (CtPubSynTaskVO) iter.next();
                try {
                    this.contentFacade.sendMsgToSms(task);
                } catch (Exception e) {
                    log.error("--- 同步内容:" + task.getContentId() + " 失败 ---");
                    e.printStackTrace();
                    continue;
                }
            }
        }

    }
}

spring配置
	<bean id="synContentTask" class="syn.SynContentTask">
		<property name="contentFacade">
			<ref local="contentFacade"/>
		</property>
	</bean>	
	<bean id="sheduledSynContentTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
	    <property name="timerTask">
	        <ref local="synContentTask"/>
	    </property>
	    <property name="period">
	        <value>60000</value>
	    </property>
	    <property name="delay">
	        <value>10000</value>
	    </property>
	</bean>
	<bean class="org.springframework.scheduling.timer.TimerFactoryBean">
	    <property name="scheduledTimerTasks">
	        <list>
	            <ref local="sheduledSynContentTask"/>
	        </list>
	    </property>
	</bean>


谢谢!
   发表时间:2007-11-26  
异常也捕获了,如果服务器的其他地方出现异常会不会导致定时器停掉呢?
0 请登录后投票
   发表时间:2007-11-26  
查一下在这个时间内,系统时间是否有变?
如果系统时间有变,原有Timer是不会工作的
2 请登录后投票
   发表时间:2007-11-26  
hbcui1984 写道
查一下在这个时间内,系统时间是否有变?
如果系统时间有变,原有Timer是不会工作的


谢谢 hbcui1984   系统时间没有改变

别的什么地方还会影响定时器?
1 请登录后投票
   发表时间:2008-06-03  
我也遇到楼主这样的问题。。你怎么解决的??
1 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics