最近在springboot中调用@scheduled执行定时任务。本地执行一切正常,但是部署到服务器上发现会执行两次定时任务。
百度了很多,也上了stackoverflow。大概原因出现在部署到tomcat后,spring会被初始化两次?
但是我尝试了很多方法都无法解决我当前项目存在的问题。
我尝试修改了tomcat的server.xml文件,添加了context,指定了加载的war包,并把appBase改为了“”。
但是我只要一这样干,项目就无法启动。真的是苦恼啊。
贴上服务器上的server.xml配置。
`<Host name="localhost" autoDeploy="true" unpackWARs="true" appBase="webapps/apps">
<Valve className="org.apache.catalina.valves.AccessLogValve" pattern="%h %l %u %t "%r" %s %b" suffix=".txt" prefix="localhost_access_log" directory="logs"/>
</Host>`
各位朋友们,给点意见。
我之前遇到过类似的情况,是因为服务器上部署了两台tomcat,做了负载均衡。每台都有一个scheduled,就执行了两次。
如果不是我这种情况,那忽略吧。
stackoverflow 上的类似问题。
Java Spring @Scheduled tasks executing twice