2014-10-17 171 views
0

我有一個使用Spring的任務命名空間運行每分鐘的計劃程序。根據文檔,它應該使用緩存池中的一個線程運行一次,延遲1分鐘。但它會在隨機時間之後再運行一次,比如之前運行的線程在不同線程上運行5秒。更何況,1分鐘後它將運行應該運行的那個。但是5秒鐘不應該運行。我在SO中看到過類似的問題,但沒有報道解決方案。在我的情況下,它在我的本地環境中工作正常,而且這個問題只發生在開發環境中。這個Spring功能有什麼問題嗎?Spring任務計劃程序多次運行單個任務

<task:annotation-driven scheduler="myScheduler" /> 
<task:scheduler id="myScheduler" pool-size="10"/> 
<task:scheduled-tasks scheduler="myScheduler"> 
    <task:scheduled ref="mySchedulerBean" 
        method="doSomething" fixed-delay="60000" /> 
</task:scheduled-tasks> 

<bean id="mySchedulerBean" class="com.mycompany.app.tasks.SchedulerBean"/> 
+0

這個上下文片段的任何機會部署兩次? – 2014-10-17 22:32:40

+0

@DirkLachowski不,本地和開發之間唯一的區別是服務器實例和一些設置。我不確定它會如何影響。 – 2014-10-18 05:23:27

+1

你能否詳細說明「幾個設置」?這個功能在春天肯定不會被破壞(順便說一句:你使用的是什麼版本?)。 – 2014-10-18 08:26:40

回答

0

對於那些使用老版本spring的人,他們需要升級到atleast 3.2.2。 如果它仍然不能解決問題,那麼上下文很可能會部署兩次。檢查應用程序服務器部署配置以解決問題,或者在其他一些情況下,您可能正在執行基於註釋的調度,並且也使用任務xml命名空間,您可以使用任一個,但不能同時使用兩個。

相關問題