1. 程式人生 > >tomcat中的quartz定時任務每次都被執行了兩次

tomcat中的quartz定時任務每次都被執行了兩次


這兩天發現部署到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,因此該行不會導致任何工程專案的載入。