2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 定时任务重启后执行策略_Spring 定时任务重复执行的问题分析

定时任务重启后执行策略_Spring 定时任务重复执行的问题分析

时间:2023-09-25 13:28:32

相关推荐

定时任务重启后执行策略_Spring 定时任务重复执行的问题分析

Spring 定时任务重复执行的问题分析

背景:使用quartz时客户现场不知道为什么跑着跑着就停了,后来决定换成spring定时任务。

当使用spring定时任务时莫名奇妙的就是同一时间重复执行多次任务(通常情况下执行两次,有时候会达到3次)。下面记录过程并逐一分析说明,供以后参考;

1、分析原因后发现是由ClassPathXmlApplicationContext导致

通过n多次试验发现:

当任务方法中不含任何业务逻辑时(如:只打印一些标志性的信息),任务能够正常执行,没有重复执行的现象;

当任务方法中包含业务逻辑,或应用程序执行别的请求任务时,均可能导致重复执行;

最终定位到了,只要执行ServletUtil.getBean("xxxxxxxx");程序获取对象,就会导致重复执行。

1.1 在执行任务的程序中,使用到的对象加载方式如下:

ColumnService columnService = (ColumnService) ServletUtil.getBean("columnServiceImpl");

1.2 ServletUtil 的getBean 方法如下:

public static Object getBean(String beanId)

{

if(factory == null)

factory = new ClassPathXmlApplicationContext("applicationContext.xml");

Object o = null ;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。