异常:同一个定时任务,重复执行。
解决方式:
tomcat配置文件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" />
<Context docBase="road" path="" reloadable="true"/>
<Context path="/att_info" docBase="E:\att_info" debug="0" reloadable="true"/>
</Host>
修改后:
<Host name="localhost" appBase=""
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" />
<Context docBase="E:\java\apache-tomcat-dev\webapps\road" path="/road" privileged="true" reloadable="true"/>
<Context path="/att_info" docBase="E:\att_info" debug="0" reloadable="true"/>
</Host>
原因是tomcat加载了2次,首先加载appBase,之后又加载了docBase,导致调度任务执行了2次,现在把appBase设置为空,docBase换成了绝对路径。
各配置的意义:https://tomcat.apache.org/tomcat-9.0-doc/config/context.html参考地址