Frage

Ich suche nach einer effektiven Art und Weise ein Verfahren täglich um 03.00 Uhr unabhängig davon, wann die Anwendung ausgeführt wurde zunächst auszuführen oder wie lange es läuft.

Das muss ohne O Intervention (ex. Windows Task Scheduler)

vollständig von der Anwendung durchgeführt werden

Ich habe mit java.util.Timer experimentiert in Konfigurationen variiert, aber ich habe keinen Erfolg gehabt.

Jede mögliche Hilfe würde geschätzt.

Danke.

War es hilfreich?

Lösung

Sie sollten einen Blick auf Quartz , die ein Java-basiertes Job-Scheduling-System ist.

Andere Tipps

Sie wollen wahrscheinlich so etwas wie der Quarz-Engine verwenden es Dinge tun kann, wie Aufgaben ausführen dass verpasst (wie bei einem ahem Absturz) und es nimmt die Arbeit aus versuchen Threads zu verwalten.

Wenn Sie zum Beispiel Threads verwenden und legen Sie sich in dem Schlaf und aufwecken 86.400 Sekunden (1 Tag) später werden Sie aufwachen und späte Stunde (Tag = 82.800 Sekunden) oder früh (Tag = 90.000 Sekunden) auf DST wechseln Tag, also seien Sie vorsichtig mit dem, was Lösung Sie wählen

Ein eingebauter in JDK Weise zu tun, was andere vorgeschlagen und erste berechnen:

  • current - desiredTime

Dann können Sie so etwas wie a verwenden Zeitplan Testamentsvollstrecker , um die Aufgaben zu übermitteln, und sie mit einer bestimmten Verzögerung ausgeführt werden. Das ist viel einfacher als die Optionen, die Sie mit Frameworks haben wie Quartz , benötigen aber keine externe Abhängigkeit.

Außerdem sollten Sie immer auflisten, die Sie JDK verwenden, damit die Menschen Lösungen für Ihre Version des JDK zur Verfügung stellen kann.

Sie können einen Thread starten, der die Differenz zum nächsten 03.00 berechnet und bietet Platz für diese Zeit. Wenn es aufwacht führt er das Verfahren und neu berechnet und schläft. Ist das, was Sie gemeint?

Wie bereits von anderen erwähnt Quarz ist eine Wahl, mit ihm können Sie cron-ähnliche Operationen, Jobs oder Trigger, hier ist ein Link zu diesem Thema tun: http://www.ibm.com/developerworks/java/library/j-quartz/index.html

Jcrontab

  

Jcrontab ist ein Scheduler in Java geschrieben. Das Projektziel ist einen voll funktionsfähigen Pläne für Java-Projekte zur Verfügung zu stellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top