使用spring的定时任务时遇到重复执行
1个回答
展开全部
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来实现。
当前我使用的第一种方案。
公司当前业务中涉及到统计模块。该模式我使用了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来实现。
当前我使用的第一种方案。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询