webapp部署两次,石英作业运行两次

时间:2016-08-22 07:02:59

标签: java tomcat quartz-scheduler

我在我的网络应用程序中运行quartz作业,该作业部署在tomcat中。但问题是作业被执行了两次。

经过一些互联网研究后,我发现在tomcat的Host中添加autoDeploy server.xml可能会导致两次部署。我猜这导致我的quartz调度程序执行了两次。

我尝试了autoDeploy = "false"。但问题还在继续。

以下是 server.xml

中的主机配置
<Host name="localhost"  appBase="webapps"
    unpackWARs="true" autoDeploy="false">

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
       prefix="localhost_access_log." suffix=".txt"
       pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

<Host name="demo.example.com" appBase="webapps/demo" unpackWARs="true" autoDeploy="false">
      <Context path="/" docBase="." reloadable="true" />
</Host>

编辑(FYI): 我的cron表达式:0 50 12 * * ?计划每天下午12:50运行。

此配置是否会部署我的应用程序两次?我该怎么做才能避免这种情况?谢谢你的到来。

1 个答案:

答案 0 :(得分:2)

如果您的观察确实正确,那么这里可能存在多个问题 -

  1. 除了您在server.xml中指定的自定义位置外,您的应用也可能出现在tomcat / webapps文件夹中。
  2. 您可能正在某些IDE中使用热部署,并且在IDE中保存文件可能会重新加载上下文,从而再次重新初始化石英,这可能会给您错误的印象。
  3. 你确实有一些代码问题。
  4. 很难说没有看到代码片段会发生什么,但这应该是相当简单的问题。