tomcat quartz 被触发两次
tomcat服務器中自啟動導致quartz定時被觸發兩次
這兩天發現部署到tomcat中的quartz定時任務靜態變量被初始化了兩次,在網上查了一下發現,在tomcat服務器下,quartz不僅會把靜態變量初始化兩次,而且quartz會執行兩次,導致該問題的原因是你的tomcat的conf目錄中的server.xml有如下配置
?
??
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context docBase="ims_plat_new" path="/bap" reloadable="true" source="org.eclipse.jst.jee.server:ims_plat_new"/> </Host>?
?
?其中第一行告訴tomcat,在啟動的時候加載webapps下的所有項目工程文件,第二行又讓tomcat再加載了一遍(一般情況下配置第二行,主要是由于想域名訪問時將工程名去掉的原因配置),這種情況下會導致工程中的quartz定時被兩次觸發,執行兩次。
?
因此修改方法如下
<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false" deployOnStartup="false"><Context docBase="ims_plat_new" path="/bap" reloadable="true" source="org.eclipse.jst.jee.server:ims_plat_new"/></Host>?
1. autodeploy屬性值設置為false,如果此項設為true,表示Tomcat服務處于運行狀態時,能夠監測appBase下的文件,如果有新有web應用加入進來,會自運發布這個WEB應用,設成false就不會。
2.增加deployOnStartup="false",表示Tomcat服務器啟動時,?不會自動發布appBase目錄下所有的Web應用。
這樣的話,在tomcat啟動時,不會自動發布appBase下的應用,啟動后也不會自動發步appBase下的應用。
?
?
下面附上兩個鏈接,分別是tomcat 中server.xml的說明:
http://blog.csdn.net/dangerye/article/details/7297185
http://www.cnblogs.com/gugnv/archive/2012/02/01/2334187.html
?
總結
以上是生活随笔為你收集整理的tomcat quartz 被触发两次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql语法与decode语法的不同
- 下一篇: concurrent: wai noti