部署到tomcat上的项目,@scheduled会执行两次!!

豆子都一样
  • 48

最近在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>`

各位朋友们,给点意见。

回复
阅读 5.3k
1 个回答
fengcl
  • 154

我之前遇到过类似的情况,是因为服务器上部署了两台tomcat,做了负载均衡。每台都有一个scheduled,就执行了两次。
如果不是我这种情况,那忽略吧。

stackoverflow 上的类似问题。
Java Spring @Scheduled tasks executing twice

确保你没有在@Scheduled注释的bean类上使用@Configurable,并且在容器中注册为普通的Spring bean。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏