webapp 部署了两次,quartz job 运行 部署了两次
webapp deployed twice and quartz job running twice
我正在 运行 在部署在 tomcat
的 Web 应用程序中创建 quartz
作业。但问题是作业被执行了两次。
经过一些互联网研究后,我发现在 tomcat 的 server.xml
中添加带有 autoDeploy
的新 Host
可能会导致两次部署。我猜这是导致我的 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 "%r" %s %b" />
</Host>
<Host name="demo.example.com" appBase="webapps/demo" unpackWARs="true" autoDeploy="false">
<Context path="/" docBase="." reloadable="true" />
</Host>
编辑(仅供参考):
我的 cron 表达式:0 50 12 * * ?
计划每天 运行 下午 12:50。
此配置是否会部署我的应用程序两次?我该怎么做才能避免这种情况?谢谢提前。
如果您的观察确实是正确的,那么这里可能存在多个问题-
- 除了您在 server.xml 中指定的自定义位置之外,您的应用程序也可能存在于 tomcat/webapps 文件夹中。
- 您可能在某些 IDE 中使用热部署并在 IDE 中保存文件可能会重新加载上下文,从而再次重新初始化 quartz,这可能会给您错误的印象。
- 你的代码确实有问题。
很难说这是怎么回事 w/o 查看代码片段,但这应该是相当简单的问题。
我正在 运行 在部署在 tomcat
的 Web 应用程序中创建 quartz
作业。但问题是作业被执行了两次。
经过一些互联网研究后,我发现在 tomcat 的 server.xml
中添加带有 autoDeploy
的新 Host
可能会导致两次部署。我猜这是导致我的 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 "%r" %s %b" />
</Host>
<Host name="demo.example.com" appBase="webapps/demo" unpackWARs="true" autoDeploy="false">
<Context path="/" docBase="." reloadable="true" />
</Host>
编辑(仅供参考):
我的 cron 表达式:0 50 12 * * ?
计划每天 运行 下午 12:50。
此配置是否会部署我的应用程序两次?我该怎么做才能避免这种情况?谢谢提前。
如果您的观察确实是正确的,那么这里可能存在多个问题-
- 除了您在 server.xml 中指定的自定义位置之外,您的应用程序也可能存在于 tomcat/webapps 文件夹中。
- 您可能在某些 IDE 中使用热部署并在 IDE 中保存文件可能会重新加载上下文,从而再次重新初始化 quartz,这可能会给您错误的印象。
- 你的代码确实有问题。
很难说这是怎么回事 w/o 查看代码片段,但这应该是相当简单的问题。