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

发布于 2022-09-06 03:21:51 字数 585 浏览 14 评论 0

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

各位朋友们,给点意见。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一生独一 2022-09-13 03:21:51

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文