Spring 配置的@Scheduled(cron = "0 1/5 5-21 * *?")任务,在同一时刻重复执行,求解决方法
Spring配置的@Scheduled(cron="01/55-21**?")任务,在同一时刻重复执行。。。Spring配置扫描package@Service...
Spring 配置的@Scheduled(cron = "0 1/5 5-21 * *?")任务,在同一时刻重复执行。。。Spring 配置扫描package @Service
展开
3个回答
展开全部
转的,我就是用这种方法解决的
这是因为我们很容易在一个基于Spring的Web工程中启动2个定时线程:
第一次:web容器启动的时候,读取applicationContext.xml(或者别的Spring核心配置文件)文件时,会加载一次。
第二次:Spring本身会加载applicationContext.xml(或者别的Spring核心配置文件)一次。
解决方案:将你的Task的相关配置独立出来并在web.xml中通过context-param加载。而不是通过spring加载。
1) 独立出Spring-Task,如新命名一个文件名叫cms_quartz.xml
2) 在web.xml中去加载该文件:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/cms-servlet.xml,classpath:cms-quartz.xml</param-value>
<context-param>
这是因为我们很容易在一个基于Spring的Web工程中启动2个定时线程:
第一次:web容器启动的时候,读取applicationContext.xml(或者别的Spring核心配置文件)文件时,会加载一次。
第二次:Spring本身会加载applicationContext.xml(或者别的Spring核心配置文件)一次。
解决方案:将你的Task的相关配置独立出来并在web.xml中通过context-param加载。而不是通过spring加载。
1) 独立出Spring-Task,如新命名一个文件名叫cms_quartz.xml
2) 在web.xml中去加载该文件:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/cms-servlet.xml,classpath:cms-quartz.xml</param-value>
<context-param>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-25
展开全部
股份琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐碎碎琐琐
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个的配置不就是每天从5点到21 点,从1 分钟开始每5分钟循环执行么? 有什么不对吗?
更多追问追答
追问
问题是这个任务在同一时刻执行了2遍...就是说会在6分钟的时候执行两遍...
追答
你看看你的代码是否有问题? 配置应该是这样的,有可能就是你在代码里面调用了两次!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询