Vorgehen bei automatischen Programmablauf

Status
Nicht offen für weitere Antworten.

Fry

Aktives Mitglied
Hallo Forum,

ich möchte eine kleine Anwendung realisieren und würde gerne ein paar Meinungen dazu einholen.
Folgendes soll mein Programm tun (gekürtzt auf das was noch zu machen ist):

- Es gibt drei Zeiten (z1, z2, z3) zu denen das Programm starten soll. Dabei ist es unabhängig welcher Tag (Woe, Werktag, etc.) herrscht.
- Egal wann das Programm gestartet wird (zeitlich) soll geprüft werden, welches der kleinste Abstand zur nächst näheren Zeit ist. Dieses soll dann die nächste Startzeit des Programms sein (Bsp.: z1= 05:00, z2=10:00, z3= 18:00; Programm wird um 04:00 gestartet, dann soll das Programm erstmals um z1 starten, dann aber immer automatisch die Zeiten z1, z2, z3 durchlaufen. Das jeden Tag aufs neue)

Folgende Klassen habe ich mal identifiziert, die für mich in Frage kommen (nach meiner Ansicht):
- GregorianCalendar
- SimpleDateFormat
- Timer

Ich bin mir nicht sicher was am besten ist das zu realisieren. Soll man dafür Objekte von GregorianCalendar erzeugen und dann vergleichen?
--> drei Objekte erstellen: firstRun, secondRun, thirdRun. Aktuelles Datum lesen und dann die drei Objekte mit den entsprechenden Zeiten (Jahr, Tag, Monat) erstellen. Man müßte dann allerdings immer nach "Ablauf" einer Zeit das Objekt neu erstellen, sprich wenn einmal 2005-10-4-z1 abgelaufen muss ja 1005-10-5-z1 generiert werden usw.

-->oder erstellt man es mit Timer und nutzt die dazugehörigen Methode
Code:
scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
Hier müßte man ja nur einmal das aktuelle Datum ermitteln und ein Datum übergeben, wann es das erstemal loslaufen soll. Allerdings kann man hier nur eine "period" übergeben. Dann muss ich entweder drei Threads erzeugen oder genau den gleichen Abstand zwischen z1,...,z3 haben. Wobei natürlich drei Threads einfach sind :wink:

Wie würdet ihr das machen? Oder gibt es noch was viel besseres? Ich nehme gerne jeden Vorschlag an :D

Thx
Fry
 

Dukel

Top Contributor
Wie wärs mit cron / at?
Damit kann man Zeitgesteuert Programme starten.
Sonst muss ein Programm immer laufen um das 2. zu starten.
 

Fry

Aktives Mitglied
Hallo!

Ja daran hatte ich auch schon überlegt. Ist vielleicht auch einfacher 8)
Thx erstmal dafür

Fry
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben