tomcat中的quartz定時任務每次都被執行了兩次
阿新 • • 發佈:2019-02-11
這兩天發現部署到tomcat中的quartz定時任務每回都被執行了兩次,但是在myeclipse執行時又不會,後來搜了網上,才發現該問題只發生於部署在tomcat伺服器上,由tomcat的自啟動導致。
導致該問題的原因是你的tomcat的conf目錄中的server.xml有如下配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="C:\Program Files\Tomcat 6.0\webapps\XXX\" workDir="C:\Program Files\Tomcat 6.0\webapps\XXX\" />
其中第一行告訴tomcat,在啟動的時候載入webapps下的所有專案工程檔案,第二行又讓tomcat再載入了一遍(一般情況下配置第二行,主要是由於想域名訪問時將工程名去掉的原因配置),這種情況下會導致工程中的quartz定時被兩次觸發,執行兩邊。
因此修改方法如下
<Host name="localhost" appBase=""
unpackWARs="false" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="C:\Program Files\Tomcat 6.0\webapps\XXX\" workDir="C:\Program Files\Tomcat 6.0\webapps\XXX5xun5mi\" />
將第一行中的appbase中的值去除,且autodeploy屬性值設定為false,因此該行不會導致任何工程專案的載入。