[英]Spring task scheduler runs a single task multiple times
我有一个调度程序,它使用Spring的任务名称空间每分钟运行一次。 根据文档,它应使用缓存池中的线程之一运行一次,延迟1分钟。 但是它在随机的时间之后运行另一次时间,例如在与之前运行的线程不同的线程上运行5秒。 更不用说,一分钟后它将运行应该运行的那一步。 但是这5秒不应该运行。 我在SO中看到过类似的问题,但是没有报告的解决方案。 就我而言,它在我的本地环境中运行良好,并且此问题仅在开发环境中发生。 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"/>
对于那些使用旧版spring的用户,他们需要升级到至少3.2.2。 而且,如果仍然不能解决问题,则很可能会两次部署上下文。 检查应用程序服务器部署配置以解决该问题,或者在其他一些情况下,您可能正在基于注释的计划,并且还正在使用任务xml名称空间,则可以使用其中之一,但不能同时使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.