Wie kann ich eine Aufgabe täglich zu einer bestimmten Zeit (sagen wir 11:00 Uhr) mit java.util.Timer
ausführen? Ich verwende JDK 1.4.2, ich weiß, dass es alt ist, aber es ist das, was das Projekt erfordert.Wie führe ich eine Aufgabe täglich aus Java aus?
Antwort
Quartz ist die bekanntesten Lösungsprozesse in Java-Umgebungen planen, aber Sie haben eine Menge von Optionen. Überprüfen Sie diese Liste:
Quartz ist ein Open-Source-Job-Scheduling-System, das mit praktisch jeder J2EE oder J2SE-Anwendung integriert oder verwendet werden kann. Quartz kann verwendet werden, um einfache oder komplexe Zeitpläne zu erstellen.
Jcrontab wurde entwickelt, um mit jedem Projekt erweitert und integriert zu werden. Liest und speichert die Aufgaben, die in einer Datei, einer Datenbank oder einem EJB ausgeführt werden sollen, und stellt eine Web-Benutzeroberfläche und eine grundlegende Swing-GUI bereit.
Essiembre J2EE Scheduler ist ein einfacher Task-Scheduling-Mechanismus für J2EE-Anwendungen. Diese Bibliothek kann als Wrapper für die Timer- und TimerTask-Klassen in der Standard-Java-API betrachtet werden. Konfiguration für auszuführende Aufgaben und deren Häufigkeit ist XML-basiert.
cron4j ist ein Scheduler für die Java 2-Plattform, der dem UNIX-Cron-Daemon sehr ähnlich ist.
Oddjob Ziel ist es, eine gewisse Ordnung und Sichtbarkeit für alle Batch-Dateien und Cron-Jobs bereitzustellen, die die kritischen Geschäftsprozesse eines Unternehmens miteinander verbinden.
Fulcrum Scheduler bietet einen Scheduler-Service. Es basiert auf dem mit Turbine gelieferten TurbineScheduler, aber alle älteren Sachen wurden entfernt. Derzeit ist NUR der nicht persistente Scheduler erledigt. Es lädt geplante Jobs aus der XML-Datei der Komponentenkonfiguration.
Gos4j -Goal Oriented Scheduling für Java - ist eine Möglichkeit, Verarbeitungsprioritäten basierend auf Zielen zu organisieren.
Job Scheduler ist ein Stapelprogramm, das als Dämon arbeitet und über eine grafische Benutzeroberfläche gesteuert werden kann. Der Job Scheduler verwendet eine XML-Konfiguration für die geplanten Programme, Skripte und für das Timing und die Häufigkeit der Aufgabenverarbeitung. Es steht eine API zur Verfügung, über die Ereignisse gesteuert und in Ihren Jobs protokolliert werden können.
JDRing ist eine einfache Java-Planungsbibliothek, die einfach und klein ist, aber das Klingeln von Alarmen in bestimmten Intervallen, als einmalige Ereignisse oder in komplexen Zeitplänen mit voller cron-ähnlicher Steuerung unterstützt.
jBatchEngine ist ein Batch-Job-Spooler in Java geschrieben. Im Gegensatz zu zeitgesteuerten Schedulern wie Cron ist jBatchEngine ereignisgesteuert.
MyBatchFramework ist ein Open-Source-Framework mit geringem Gewicht, mit dem einfach zu verwaltende Batch-Programme in Java erstellt werden können.
Super with SuperScheduler and SuperWatchdog ist ein Java-Job-Scheduler mit Rich-GUI für alle Anwendungen. Es ist plattformneutral. Besonders gut als Job Scheduler für Linux und Solaris. Es bietet eine Reihe von Funktionen des Schedulers von Microsoft Windows. Es bietet eine ereignisgesteuerte Planung. Es kann Aufgaben in einer verteilten Umgebung planen. Eine Task wird einmalig und einmalig von allen Maschinen im Netzwerk ausgeführt. Alle Aufgaben sind Ferien einstellbar. Selbst jeder Job ist ein STANDBY-Job, die Geschichte wird eine gute Spur für wichtige Aufgaben sein. Es unterstützt die Internationalisierung.
Schauen Sie in TimerTask und Timer - beide sind in dieser Version des JDK.
Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
Legen Sie es auf das erste Datum, das Sie wollen, dann die Anzahl der Millisekunden an einem Tag als Ihre Verzögerung.
Können Sie eine Bibliothek wie cron4j verwenden? Es wird Ihre Arbeit viel einfacher machen!
Sie haben verwenden Quartz
Ich habe nie wissen, wer Quartz startet zwar an erster Stelle.
Wenn Sie einen Anwendungsserver oder ein ähnliches Artefakt haben, können Sie den Quartz-Auftrag dort konfigurieren und die Aufgabe zum angegebenen Zeitpunkt ausführen lassen.
Quarz hat viele ausgefallene Features, also wenn deine Anforderungen aufwendig sind, kann es eine gute Wahl sein . Aber wenn Sie ein einfaches "fire dies um 5:00 jeden Tag" haben, würde ich nur Timer verwenden. – Jay
- Java-Timer können in Intervallen, vordefinierten Zeiten usw. einen beliebigen Job ausführen.
- Bibliothek
- Wenn Sie wirklich nackt sein wollen, wickeln Sie es in ein Shell-Skript und fügen Sie in Cron.
Vielleicht, dass kürzlich erschienener Beitrag helfen Ihnen:
Will this pause my Java thread for a minute?
Meine Antwort auf diese Frage ist ein Java-Implementierung in gebaut verwendet basierend auf java.util.Time und java.util.TimerTask Klassen: Will this pause my Java thread for a minute?
Oder Sie können den Crontab-Dienst für * nix-Plattformen verwenden (auch für Windows-Plattformen verfügbar). Das ist der einfachste und leichteste Stil, um einen eigenständigen Job regelmäßig auszuführen.
[] 's,
Und Vergangenheit
Schnelle crontab wie: http://www.crontabrocks.org/ [], und Vergangenheit – apast
- 1. Wie führe ich ein PHP-Skript täglich automatisch aus?
- 2. Wie führe ich eine geplante Aufgabe in sailsjs aus?
- 3. Wie führe ich eine Symfony-Aufgabe im Hintergrund ordnungsgemäß aus?
- 4. Wie führe ich Zeichenketten in Java aus?
- 5. Wie führe ich Java im Kompatibilitätsmodus aus?
- 6. Wie führe ich eine Datei mit Java aus?
- 7. Wie führe ich eine Java-Anwendung mehrere Male gleichzeitig aus?
- 8. Wie führe ich eine Batch-Datei von Java aus?
- 9. Python: Wie führe ich eine zweite Aufgabe nur aus, wenn die erste Aufgabe beendet ist?
- 10. Wie führe ich eine bessere Kolorierungsfunktion aus?
- 11. Wie führe ich eine Qt-Anwendung aus?
- 12. Wie führe ich eine Zeilensperre aus?
- 13. Ich führe mein Programm in Java aus
- 14. Wie führe ich TopoJSON aus?
- 15. Wie führe ich eine gespeicherte Prozedur aus Preparestatement aus
- 16. Wie führe ich eine Funktion von R aus C# aus?
- 17. Wie installiere/führe ich eine Überwachungsaufgabe in Gradle aus?
- 18. Ich führe eine * angeschlossene * Bildschirmsitzung asynchron aus
- 19. Wie führe ich ein Glas aus einem Glas aus?
- 20. eine Aufgabe zweimal täglich mit Laravel Planung
- 21. Wie führe ich ein Skript als Datei in Java aus?
- 22. Wie führe ich Python-Skript von Java aus?
- 23. Wie führe ich ein einfaches Java-Programm in Eclipse aus?
- 24. Wie führe ich eine lokale Server/Client-Anwendung aus?
- 25. Wie führe ich den Befehl rd in Java aus?
- 26. Wie führe ich ein Java-Programm aus einem anderen Verzeichnis?
- 27. Wie führe ich einen Java Nippet aus einem anderen
- 28. Wie führe ich eine Aufgabe bei einem Fehler in Jenkins aus?
- 29. Wie führe ich eine Aufgabe aus, wenn die Variable in ansible nicht definiert ist?
- 30. Wie führe ich eine Aufgabe nach einem bestimmten Zeitraum in Android aus?
dies eine Möglichkeit, scheint wie, ob diese Bibliothek abhängig werden darf –
Ich Sekunde, um diesen Vorschlag verwendet werden - cron4j ist eine Freude, und wirkt wie ein Zauber, ist viel einfacher als Quartz (das funktioniert auch, es ist einfach ziemlich groß und oft mehr als du wirklich brauchst; und hat einige Knicke für einfachere Anwendungsfälle) – StaxMan