Вы можете взглянуть на интерфейс TaskScheduler
.Он предоставляет метод scheduleAtFixedRate(Runnable task, Date startTime, long period)
, который возвращает ScheduledFuture
.Вы можете использовать это с простой конфигурацией Spring:
<task:scheduler id="scheduler" pool-size="10"/>
Это создаст экземпляр ThreadPoolTaskScheduler
, который реализует TaskScheduler
.Подключите этого плохого парня к классу, чтобы вызвать ваш конкретный метод:
public class MyClass {
@Autowired
private TaskScheduler scheduler;
public void init() {
scheduler.scheduleAtFixedRate(new Runnable() {
public void run() {
myMethod();
}
}, new Date(), 1000 * 60 * 60 * 2); //This will start now and run every two hours
}
public void myMethod() {
// the method you want to invoke
}
}