Output validierung

sebastianb

Erfahrenes Mitglied
Hallo zusammen,

ich habe nur eine kurze Frage was so das Best Practices für folgendes "Problem" ist:

Ich habe ein Monitoring-Tool, welches im einem Abstand von 15min Testfiles erzeugt und zur bearbeitung an einen asynchronen Service schickt. Nach 15min prüfe ich, ob die File korrekt verarbeitet wurde und beginne wieder von vorne.

Pseudecode:
Java:
while(true)
{
   File file = new Fle(...);
   server.execute(file); // Process File
   Thread.sleep(900000); // Wait 15min
   server.validate(...); // Validate Service output
}

Meine Frage richtet sich jetzt speziell auf das Thread.sleep(), welches die validierung um 15min verzögern soll aber irgendwie erscheint mir das als unsauber oder was meint ihr?
Evetl. über eine ExecutionService einen Future-Thread erstellen, welcher Zeitversetzt in 15min startet und dann die Validierung vornimmt?

Vielen Dank für eure Anregungen :)

Sebastian
 
Zuletzt bearbeitet von einem Moderator:
Hi,

also ich würde es über einen TimerTask lösen. Diesen startest du über die Klasse Timer. Dem Timer kannst du sagen, nach welchen Zeitintervallen der Task ausgeführt werden soll.

Java:
Timer timer = new Timer();
timer.scheduleAtFixedRate(new DeinTimerTask, 
   0, // Wartezeit vor erstem Durchlauf
   900000 // Wiederholungsintervall
);

Gruß

Fabio
 
Ahhh, der gute alte Timer. Danke für den Tipp :)

*EDIT*
So das mit dem Timer klappt recht gut aber ich habe gerade das Problem, dass ich unter bestimmten Umständen den Execution-Delay ändern muss aber anscheinend ist dies mit dem Timer nicht möglich :/

Gruß

Sebastian
 
Zuletzt bearbeitet:
geht soweit ich weiß auch nicht, aber du kannst den Timer auf alle x Minuten etc einstellen und nur auf alle y Delay Signale reagieren. Auch praktisch wenn man mehrere Prozesse hat die unterschiedliche Delay Zeiten haben müssen ;)

In deinem Fall zum Beispiel jede Minute ein delay und du kannst in deinem Prozess einstellen ob er 5 10 oder 11 Minuten warten soll

MfG
 
Zurück