Tomcat 7.0.23&春季3.1&任务调度程序多次调用

时间:2012-02-10 12:08:41

标签: spring task scheduled-tasks

我的spring.xml看起来像

<task:scheduler id="feedServiceScheduler"  pool-size="10"/>
<task:scheduled-tasks scheduler="feedServiceScheduler">        


    <task:scheduled ref="feedService" method="testMethod" cron="0 50 11 * * *" />

</task:scheduled-tasks>

我希望在每年的每天的11:50对对象“feedService”调用方法“testMethod”
由于某种原因,testMethod被调用两次,我找不到问题的解决方案。

“feedService”bean没什么特别的,只是一个简单的POJO和测试方法打印出一条消息。

任何关于我可能做错事的帮助都会很棒。

由于

1 个答案:

答案 0 :(得分:0)

这里的问题相同。看起来,tomcat创建了多个servlet实例,因此调度的proc会被多次调度。

这是一个小日志,您可以在其中查看在不同类上启动的运行:

[2012-03-22 11:03:00,001] [ClickCheatReportGenerator] DEBUG ClickCheatersender called (com.innofeed.mindenkupon.schedules.ClickCheatReportGenerator@5238d01c)

[2012-03-22 11:03:00,004] [ClickCheatReportGenerator] DEBUG ClickCheatersender called (com.innofeed.mindenkupon.schedules.ClickCheatReportGenerator@fe70870)

[2012-03-22 11:03:00,004] [ClickCheatReportGenerator] DEBUG ClickCheatersender called (com.innofeed.mindenkupon.schedules.ClickCheatReportGenerator@8daf938)

您应该限制tomcat只运行1个servlet实例,但这可能会导致性能问题。

<强>更新 最后解决了使用cron schedule调用控制器处理的url的问题。