使用spring的定时任务时遇到重复执行

 我来答
科创17
2022-06-06 · TA获得超过5930个赞
知道小有建树答主
回答量:2846
采纳率:100%
帮助的人:178万
展开全部
spring自带的定时任务,能解决很多问题。在当前公司的项目模块中,我使用了这一功能。然而因为服务器配置不当,引发了任务重复执行。困扰我多日。

公司当前业务中涉及到统计模块。该模式我使用了spring的定时任务。其中一个任务每日的凌晨4点执行一次。但是结果发现执行了2次,产生2条记录。

寻找原因的时候,基本都是 通过搜索引擎,很幸运,不是我一个人遇到,大家都遇到类似的问题。

阅读几篇文章分析之后,得出的结论如下:

具体什么样子的配置会导致项目加载2次呢。

主要是tomcat的server.xml中 host和context参数。

出现问题时的配置如下:

tomcat 会自动加载webapps下文件夹作为项目。访问路径为 localhost:8080/项目文件夹名

如果配置了context,则tomcat 会加载一次context的文件夹作为默认项目。

最终导致 D:\Program Files\apache-tomcat-8.5.23\webapps\lightai-api 被2次加载,问题出现。

而当初原本配置context是为了实现访问 localhost:8080 这样访问项目,由于不熟悉这一加载机

制,引发了这个故障。

如果需要在美化项目的访问路径,可以通过nginx来实现。

当前我使用的第一种方案。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式