Я сделал задачу с помощью пружины @Scheduled аннотация, но по некоторым причинам она выполняет задачу дважды. Моя версия Платформы Spring 3.0.2.
@Service
public class ReportService {
@Scheduled(fixedDelay=1000 * 60 * 60* 24)
@Transactional
public void dailyReportTask()
{
... code here ...
}
}
Вот мой XML:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd">
<task:scheduler id="taskScheduler" />
<task:executor id="taskExecutor" pool-size="1" />
<task:annotation-driven executor="taskExecutor"
scheduler="taskScheduler" />
</beans>
Где вы его запускаете? На вашем компьютере? На одном сервере? 2 сервера приложений с балансировкой нагрузки?
Может быть, он работает на (а) вашем ПК и (б) вашем сервере, поэтому кажется, что он работает дважды, если вы понимаете, что я имею в виду: он работает один раз, просто в двух разных местах.