2014-10-17 171 views
0

我有一个使用Spring的任务命名空间运行每分钟的计划程序。根据文档,它应该使用缓存池中的一个线程运行一次,延迟1分钟。但它会在随机时间之后再运行一次,比如之前运行的线程在不同线程上运行5秒。更何况,1分钟后它将运行应该运行的那个。但是5秒钟不应该运行。我在SO中看到过类似的问题,但没有报道解决方案。在我的情况下,它在我的本地环境中工作正常,而且这个问题只发生在开发环境中。这个Spring功能有什么问题吗?Spring任务计划程序多次运行单个任务

<task:annotation-driven scheduler="myScheduler" /> 
<task:scheduler id="myScheduler" pool-size="10"/> 
<task:scheduled-tasks scheduler="myScheduler"> 
    <task:scheduled ref="mySchedulerBean" 
        method="doSomething" fixed-delay="60000" /> 
</task:scheduled-tasks> 

<bean id="mySchedulerBean" class="com.mycompany.app.tasks.SchedulerBean"/> 
+0

这个上下文片段的任何机会部署两次? – 2014-10-17 22:32:40

+0

@DirkLachowski不,本地和开发之间唯一的区别是服务器实例和一些设置。我不确定它会如何影响。 – 2014-10-18 05:23:27

+1

你能否详细说明“几个设置”?这个功能在春天肯定不会被破坏(顺便说一句:你使用的是什么版本?)。 – 2014-10-18 08:26:40

回答

0

对于那些使用老版本spring的人,他们需要升级到atleast 3.2.2。 如果它仍然不能解决问题,那么上下文很可能会部署两次。检查应用程序服务器部署配置以解决问题,或者在其他一些情况下,您可能正在执行基于注释的调度,并且也使用任务xml命名空间,您可以使用任一个,但不能同时使用两个。

相关问题