專案涉及到定時任務,用的spring自帶的定時任務
部署到伺服器上,卻發現定時任務執行的結果總是重複一次。剛開始以為是資料本身問題。後檢視日誌,定時任務每次都執行了兩遍。因為執行的時間一樣,除了微妙級別有差異。
這類問題,網上也有類似的解答,但不符合我的實際情況。但查詢問題的方向一致:定時任務很可能被載入了兩次或多次。
網上的一類問題是配置檔案的疏忽導致,定時任務所在spring配置檔案被載入了兩次。具體原因是有些配置用了萬用字元配置了一次,又明確的指定了一次,或是spring容器按預設的規則載入了一次。而你的配置檔案正好是預設名,預設路徑。詳細的可以到網上搜尋。
重點說我遇到的問題。檢查配置後確認不是配置檔案的問題。猜想有可能是整個專案載入了兩次。
還有一種很隱蔽的問題會導致類似情況,甚至會出現很多併發症。當專案中有隨專案啟動而啟動的後台任務,在tomcat關閉時本應該結束的。卻由於資源的釋放一直沒有處理好,導致
專案結束不掉。處於一種半執行半停止的狀態。多次重啟tomcat就會有多個專案例項一樣。出現的問題就不止是任務執行多次了。還會有其他覺得很奇怪的問題。
spring的定時任務被多次執行
在使用spring的定時任務時,定時任務被多次執行。有一下這幾種情況 1.錯誤 2.業務邏輯錯誤 3.spring的多次載入 4.tomcat配置導致容器被初始化兩次 解決問題 1.本專案全部使用註解,不存在多次配置,spring載入多次的問題 2.本地idea測試,只執行一次,所以無 和業務邏輯錯...
集群定時任務執行多次
處理集群定時任務多次執行新增可能存在重複資料問題 第一種就是下面的方法,利用redis 第二種建立資料庫唯一約束 會執行多次 還有quartz等等 設定失效時間為定時任務結束時間至下次定時任務執行時間之間就行,使用setnx方法設定鎖。public static boolean setstringn...
Spring定時任務
sayhello 0 08 21 下面的表示式 0 15 10 6l 2002 2005 將在2002年到2005年的每個月的最後乙個星期五上午10點15分執行作業。你不可能用 trigger來做這些事情。你可以用兩者之中的任何乙個,但哪個跟合適則取決於你的排程需要。更多詳細介紹參考此處 關於cro...