Spring定時器在同一時間重複執行兩次

2021-08-15 03:42:20 字數 770 閱讀 7176

解決方案如下:

最近用spring

的quartz

定時器的時候,發現到時間後,任務總是重複執行兩次,在

tomcat

或jboss

下都如此。

列印出他們的

hashcode

,發現是不一樣的,也就是說,在

web容器啟動的時候,重複啟了兩個

quartz

執行緒。研究下來發現

quartz

確實會載入兩次:

第一次:

web容器啟動的時候,讀取

檔案時,會載入一次。

第二次:

spring

本身會載入

一次。而我的

quartz

配置就是寫在

檔案裡的。

解決辦法很簡單

先把quartz

配置資訊提取出來,單獨存成乙個檔案,比如

然後修改

web.xml

,讓web

容器啟動時,可以載入該檔案

這樣quartz

只會在web

容器啟動時載入一次,

spring

不會再載入了。

web.xml

配置如下:

contextconfiglocation

org.springframework.web.context.contextloaderlistener

把定時器的配置單獨寫成乙個配置檔案,在

web容器啟動的時候只載入一次

Spring定時器在同一時間重複執行兩次

最近用spring 的quartz 定時器的時候,發現到時間後,任務總是重複執行兩次,在 tomcat 或jboss 下都如此。列印出他們的 hashcode 發現是不一樣的,也就是說,在 web容器啟動的時候,重複啟了兩個 quartz 執行緒。研究下來發現 quartz 確實會載入兩次 第一次 ...

列印最新同一時間的日誌資訊

有如下的日誌 var log message.log,要求把最新時間的日誌列印出來。1 2 3 4 5 6 7 8 9 10 time,entity,severity,node,desc 00 00 01 04 25 2016,node,info,0,img control link is up 0...

讓php程式同一時間最多只有乙個工作

某些命令列程式執行的時候,為了避免多程序互相干擾,需要讓它同一時間只能有乙個例項在執行。下面是我的方法 lockfile file running function lock function unlock lock register shutdown function unlock do some...