歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Spring 定時器執行兩次

Spring 定時器執行兩次

日期:2017/3/1 9:42:39   编辑:Linux編程

Spring錯誤筆記

Spring定時器執行兩次因為導入了兩次

關於配置文件如下
<bean id="timeTaskService" class="xx.xxx.xxx.xxx.service.impl.na.TimeTaskService"/>

<task:scheduled-tasks scheduler="myScheduler"><!--30秒執行一次 -->
<task:scheduled ref="timeTaskService" method="checkHeartBeat" cron="0/30 * * * * ?"/>
</task:scheduled-tasks>

<task:scheduler id="myScheduler"/>

對應的類有個定時執行檢查的動作,但是動作中的日志每次輸出兩遍,一開始以為是log4j的輸出導致的兩條,找了半天沒辦法還是決定eclipse調試打印一下,輸出竟然是兩條,那麼等於這個方法竟然執行了兩次。
根絕網上提供的說法如果導入兩次那麼就可能出現這種情況,發現真的是因為導入了兩次,因為在spring.xml中import中寫的
<import resource="classpath*:config/**/spring*.xml"/>
而其他的包裡面還包含了相同的spring.xml文件,且這個spring.xml還有這麼一個導入<import resource="spring-job.xml" />
等於加載了不止一遍,上邊導入的時候已經有了一個spring*.xml(可能也包含spring-job.xml了)而另一個又import了一次。

這個時候只要把spring.xml中import導入寫成<import resource="classpath*:config/**/spring.xml"/>只導入spring.xml或者把另一個spring.xml中<import resource="spring-job.xml" />去掉即可。

Spring中如何配置Hibernate事務 http://www.linuxidc.com/Linux/2013-12/93681.htm

Struts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm

基於 Spring 設計並實現 RESTful Web Services http://www.linuxidc.com/Linux/2013-10/91974.htm

Spring-3.2.4 + Quartz-2.2.0集成實例 http://www.linuxidc.com/Linux/2013-10/91524.htm

使用 Spring 進行單元測試 http://www.linuxidc.com/Linux/2013-09/89913.htm

運用Spring注解實現Netty服務器端UDP應用程序 http://www.linuxidc.com/Linux/2013-09/89780.htm

Spring 3.x 企業應用開發實戰 PDF完整高清掃描版+源代碼 http://www.linuxidc.com/Linux/2013-10/91357.htm

Spring 的詳細介紹:請點這裡
Spring 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved