1. 程式人生 > >Tomcat叢集Spring+Quartz多次執行解決方案記錄

Tomcat叢集Spring+Quartz多次執行解決方案記錄

由於在叢集環境下定時器會出現併發和重複執行的問題,我再三考慮記錄有5

一、把定時器模組單獨拿出來放到一臺tomcat或者新建一個Java工程手動啟動定時器,這樣定時器的任務就可以從原來的叢集中抽離開來,原來的tomcat叢集不再執行定時器任務,而是交給定時器應用單獨執行。

二、不從叢集當中抽離定時器,而是採用另外一個應用統一排程,每次只有一臺tomcat執行定時器任務。

三、 採用資料庫來記錄每臺tomcat定時器執行的狀態,執行的狀態可以採用當前執行的時間點來區分,當定時器執行的時候首先應該把當前時間點記錄到資料庫中 防止另外一臺機器重複執行,當另外一臺tomcat上面的定時器執行的時候首先會比較當前時間點是否和資料庫記錄的時間點之間的時間差大於定時器執行的時 間間隔,執行的狀態還可以採用其他方式進行區分

五、tomcat+jboos,定時器部署到tomcat上面,定時器要執行的業務邏輯放在jboss上面採用會話bean+實體bean,這種可以用在jboss叢集環境下