spring 定时器执行两次

本文记录了一次Spring定时器异常的问题,详细解析了由于配置错误导致定时任务被导入并执行了两次的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring错误笔记

spring定时器执行两次因为导入了两次



关于配置文件如下 
<bean id="timeTaskService" class="xx.xxx.xxx.xxx.service.impl.na.TimeTaskService"/>

<task:scheduled-tasks scheduler="myScheduler"><!--30秒执行一次 -->
<task:scheduled ref="timeTaskService" method="checkHeartBeat" cron="0/30 * * * * ?"/>
</task:scheduled-tasks>

<task:scheduler id="myScheduler"/>


对应的类有个定时执行检查的动作,但是动作中的日志每次输出两遍,一开始以为是log4j的输出导致的两条,找了半天没办法还是决定eclipse调试打印一下,输出竟然是两条,那么等于这个方法竟然执行了两次。
根绝网上提供的说法如果导入两次那么就可能出现这种情况,发现真的是因为导入了两次,因为在spring.xml中import中写的
<import resource="classpath*:config/**/spring*.xml"/>
而其他的包里面还包含了相同的spring.xml文件,且这个spring.xml还有这么一个导入<import resource="spring-job.xml" />
等于加载了不止一遍,上边导入的时候已经有了一个spring*.xml(可能也包含spring-job.xml了)而另一个又import了一次。


这个时候只要把spring.xml中import导入写成<import resource="classpath*:config/**/spring.xml"/>只导入spring.xml或者把另一个spring.xml中<import resource="spring-job.xml" />去掉即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值