2016-06-16 10 views
0

ich die ScheduledExecutorService bin mit mehreren Aufgaben alle x Sekunden startensetzen Sie die „Bezugszeit“ von ScheduledExecutorService

zB.

ScheduledExecutorService schedules; 
schedules.scheduleAtFixedRate(new UpdateTask(), 0, 10, TimeUnit.SECONDS); 

Funktioniert perfekt, es sei denn, das System ändert Datum "zurück in der Zeit". Da wir ein batterieloses System haben, beginnt unser System mit einem falschen Datum und erhält die richtige Zeit später von einem anderen System.

Wenn sie eine korrekte Zeit in der Zukunft bekommen, kein Problem. Wenn sie eine Zeit in der Vergangenheit bekommen, laufen die geplanten Aufgaben nicht mehr.

Wie auch immer, um die Zeitpläne neu zu starten oder zurückzusetzen, damit sie von der neuen, korrigierten Zeit zu zählen beginnen?

+1

überprüfen http://stackoverflow.com/questions/9044423/java-scheduler-which-ist-vollständig-unabhängig-von-System-time-changes – kTT

Antwort