springjava

spring的定时任务被多次执行

2018-02-08  本文已影响122人  谁在烽烟彼岸

在使用spring的定时任务时,定时任务被多次执行。

有一下这几种情况:

1.代码错误

2.业务逻辑错误

3.spring的多次加载

4.tomcat配置导致容器被初始化两次


解决问题

1.本项目全部使用注解,不存在多次配置,spring加载多次的问题

2.本地Idea测试,只执行一次,所以无代码和业务逻辑错误


定位到问题是tomcat

tomcat配置导致容器被初始化两次

由于app直接放在tomcat的webapp下,并且通过根路径访问,配置如下

最初的配置信息

查找类似问题处理方式:

方法1:不配置根路径访问(最为简单粗暴)

不配置根路径访问

方法2:将路径已出webapp目录,在docBase中指定路径(可以是相对于webapp的路径,或者绝对路径)

方法3:替换ROOT目录

方法4:在conf/Catalina/localhost生成ROOT.xml,并加入如下内容:

<?xml version='1.0' encoding='utf-8'?>

<Context docBase="xxx" path="" reloadable="true" />

实际上方法四是方法一的变种;

上一篇下一篇

猜你喜欢

热点阅读