Hallo,
ich habe 2 Anwendungen, die auf verschiedene Computer laufen. Nun muss eine Aktion relativ gleichzeitig ausgeführt werden. Um die gleiche Uhrzeit auf den beiden Computer zu benutzen, frage ich einen Zeitserver ab.
Nun muss ich aber diese Aktion in 5 Sekunden Intervallen ausführen. Wie löst man so ein Problem?
Ich habe das z. Z. so gelöst, dass man jedes mal den Zeitserver abfragt, die entsprechende Zeit abwartet und die Aktion in dem Intervall ausführt. Kann man es so lösen, dass ich nur einmal den Zeitserver abfragen muss und dann immer diese Uhrzeit verwende?
System.currentTimeMillis() gibt mir die Zeit der JVM ab. Die ist verschieden für verschiedene JVMs, auch auf dem selben Computer. Siehe auch hier Java: Time Synchronization Trick in Programming | twit88.com
Am einfachsten wäre es wenn ich die Zeit der JVM auf die Uhrzeit des Zeitservers setzen würde.
Am liebsten wäre mir eine vorgefertigte Bibliothek, die das Problem löst.
Ich denke ich kann auch nicht Thread.sleep(1000) verwenden um die Sekunden ab zumessen, weil Thread.sleep() auch bestimmt mit der Zeit der JVM läuft, so dass ich nach X Thread.sleep(1000) dann die Zeit nicht mehr mit der Uhrzeit des Zeitservers übereinstimmt.
ich habe 2 Anwendungen, die auf verschiedene Computer laufen. Nun muss eine Aktion relativ gleichzeitig ausgeführt werden. Um die gleiche Uhrzeit auf den beiden Computer zu benutzen, frage ich einen Zeitserver ab.
Nun muss ich aber diese Aktion in 5 Sekunden Intervallen ausführen. Wie löst man so ein Problem?
Ich habe das z. Z. so gelöst, dass man jedes mal den Zeitserver abfragt, die entsprechende Zeit abwartet und die Aktion in dem Intervall ausführt. Kann man es so lösen, dass ich nur einmal den Zeitserver abfragen muss und dann immer diese Uhrzeit verwende?
System.currentTimeMillis() gibt mir die Zeit der JVM ab. Die ist verschieden für verschiedene JVMs, auch auf dem selben Computer. Siehe auch hier Java: Time Synchronization Trick in Programming | twit88.com
Am einfachsten wäre es wenn ich die Zeit der JVM auf die Uhrzeit des Zeitservers setzen würde.
Am liebsten wäre mir eine vorgefertigte Bibliothek, die das Problem löst.
Ich denke ich kann auch nicht Thread.sleep(1000) verwenden um die Sekunden ab zumessen, weil Thread.sleep() auch bestimmt mit der Zeit der JVM läuft, so dass ich nach X Thread.sleep(1000) dann die Zeit nicht mehr mit der Uhrzeit des Zeitservers übereinstimmt.