解決quartz定時任務被觸發兩次的問題: 其中<Host/>告訴tomcat,在啟動的時候載入webapps下的所有項目工程文件,<Context/>又讓tomcat再載入了一遍(一般情況下配置<Context/>,主要是由於想功能變數名稱訪問時將工程名去掉的原因配置),這種情況下會導致工程中的quart ...
解決quartz定時任務被觸發兩次的問題:
其中<Host/>告訴tomcat,在啟動的時候載入webapps下的所有項目工程文件,<Context/>又讓tomcat再載入了一遍(一般情況下配置<Context/>,主要是由於想功能變數名稱訪問時將工程名去掉的原因配置),這種情況下會導致工程中的quartz定時被兩次觸發,執行兩次。
<Host/>裡面的改成 autoDeploy="false" deployOnStartup="false" 這樣就可以避免tomcat伺服器中自啟動導致quartz定時任務被觸發兩次。(當然還可以按需求修改,畢竟每個項目的需求都不盡相同。)
1. autodeploy屬性值設置為false,如果此項設為true,表示Tomcat服務處於運行狀態時,能夠監測appBase下的文件,如果有新有web應用加入進來,會自運發佈這個WEB應用,設成false就不會。
2.增加deployOnStartup="false",表示Tomcat伺服器啟動時, 不會自動發佈appBase目錄下所有的Web應用。
這樣的話,在tomcat啟動時,不會自動發佈appBase下的應用,啟動後也不會自動發步appBase下的應用。
當然網路上也有另外一種配置方法:
就是在<Context/>裡面修改 docBase加上“/webapps”路徑,當然項目訪問路徑就變為http://localhost/eugeneqiu_test 了,看見項目名實在是難受,我就沒用這方法了。
解決quartz定時任務被觸發兩次的問題
方法1、通過改TOMCAT的配置文件server.xml配置
方法2、先把quartz配置信息提取出來,單獨存成一個文件,比如applicationContext-quartz.xml 然後修改web.xml,讓web容器啟動時,可以載入該文件 。(此文沒對此方法進行深入探究)