Gibt es einen cron-wie die Implementierung von ScheduledExecutorService in Java?
Den ScheduledExecutorService in Java ist ziemlich praktisch für wiederkehrende Aufgaben, die entweder mit festen Intervallen oder zu festen Verzögerung. Ich Frage mich, ob es eine so etwas wie die bestehenden ScheduledExecutorService können Sie angeben, eine Zeit der Tag, den task zu planen, anstatt ein Intervall, d.h. "ich möchte diese Aufgabe, um das Feuer um 10 Uhr jeden Tag".
Ich weiß, Sie können dies erreichen, mit Quarz -, aber ich möchte lieber nicht verwenden, die Bibliothek, wenn möglich (es ist eine große Bibliothek, aber ich möchte lieber nicht haben, die Abhängigkeit für ein paar Gründe).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Timer Klasse. Insbesondere scheduleAtFixedRate(TimerTask task, Date erstmalige, lange Zeit). Wo Sie können eine Aufgabe starten um 10 Uhr an einem bestimmten Tag, und wiederholen Sie alle 24 Stunden.
ScheduledExecutorService
weit überlegen, dieTimer
Klasse, aus vielen Gründen.Etwas weitere Suche hat sich bis CronExecutorService in HA-JDBC. Interessanterweise hat es eine Abhängigkeit von Quarz für seine CronExpression Klasse, aber das ist es. Das ist nicht so schlimm.
Update: ich habe behoben, das fehlerhafte links auf die neuen Versionen, aber ich weiß nicht, ob das ist die einzige Abhängigkeit mehr
ThreadPoolTaskScheduler, können verwendet werden, wenn eine externe thread-Verwaltung ist nicht erforderlich. Intern delegiert er an einen ScheduledExecutorService - Instanz. ThreadPoolTaskScheduler implementiert Spring TaskExecutor - Schnittstelle zu, so dass eine einzelne Instanz kann verwendet werden, für die asynchrone Ausführung sowie geplanten und potenziell wiederkehrend, Hinrichtungen.
Wo, wie CronTrigger() nimmt in cronExpression http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.html
Für weitere Informationen über diese Lösung finden Sie Frühling docs: https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html
Wenn Sie scheduleAtFixedRate Sie mit Verzögerung. Also die Verzögerung kann den Unterschied, um 10 Uhr und beträgt 24 Stunden.
Dies könnte der drift ein bisschen, sogar mit einem timer, so dass das, was Sie tun können, ist eine Aufgabe planen, die fügt sich an den ScheduledExecutorService mit einer entsprechenden Verzögerung zu jeder Zeit.
JT Cron
http://jarretttaylor.com/java/jt-cron.html