Ich möchte einen Prozess ausführen, nachdem ich meinen Webservice gestartet habe, und dann alle 30 Minuten oder später (Ich teste es mit einer kleineren Verzögerung, nur um zu sehen, ob es funktioniert), aber Mein Prozess läuft nie mehr als einmal. Was mache ich falsch?ScheduledExecutorService wird nur einmal ausgeführt
Hier ist mein Code:
@WebListener
public class SchedulerService implements ServletContextListener{
@Autowired
UpdateSubscriberService updateSubscriberService;
ScheduledExecutorService scheduledExecService;
public SchedulerService(){
scheduledExecService = Executors.newSingleThreadScheduledExecutor();
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
scheduledExecService.shutdown();
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
scheduledExecService.scheduleWithFixedDelay(new Runnable(){
@Override
public void run() {
Date date = new Date(System.currentTimeMillis());
System.out.println("Running scheduled update check " + date.toString());
updateSubscriberService.checkForUpdates();
}
}, 60, 30, TimeUnit.SECONDS);
}
}
Sind Sie sicher, dass die run() -Methode zurückgibt? – Warrior