我的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和测试方法打印出一条消息。
任何关于我可能做错事的帮助都会很棒。
由于
答案 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的问题。