我的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>
我预计方法"testMethod"将在一年中每天11:50对对象"feedService"调用
出于某种原因,testMethod被调用了两次,我就是找不到问题的解决方案。
"feedService"bean并不花哨,只是一个简单的POJO和测试方法打印出一条消息。
任何关于我可能做错的事情的帮助都将是非常好的。
感谢
这里也有同样的问题。看起来,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只运行一个servlet实例,但这可能会导致性能问题。
更新:最后,使用cron调度调用由控制器处理的url解决了这个问题。