Frage

In einer Java-Web-Anwendung (Servlets / spring mvc), mit tomcat, ist es möglich, einen cron-Job-Typ-Dienst ausführen?

z. alle 15 Minuten, spülen Sie die Log-Datenbank.

Können Sie tun dies in einer Weise, die Behälter unabhängig ist, oder es hat mit Kater oder einen anderen Behälter zu laufen?

Bitte angeben, ob die Methode garantiert zu einem bestimmten Zeitpunkt oder eine laufen, der alle 15 Minuten fährt, aber wird zurückgesetzt usw., wenn die Anwendung recycles (das ist, wie es in .net ist, wenn Sie Timer verwenden)

War es hilfreich?

Lösung

Wie dokumentiert in Kapitel 23. Planen und Threadpooling , Frühling hat Planungsunterstützung durch Integrationsklassen für die Timer und der Quartz Scheduler ( http: //www.quartz- scheduler.org/ ). Für einfache Anforderungen, würde ich empfehlen, mit der JDK Timer zu gehen.

Beachten Sie, dass Java-Scheduler sind in der Regel verwendet Java auslösen Business-orientierte Arbeitsplätze . Für Sysadmin Aufgaben (wie das Beispiel, das Sie gegeben haben), sollten Sie wirklich lieber cron und traditionelle Admin-Tools (bash, etc.).

Andere Tipps

Wenn Sie Frühling verwenden, können Sie den eingebauten in Quarz oder Timer Haken verwenden. Siehe http://static.springsource.org/spring/docs /2.5.x/reference/scheduling.html

Es wird Container-spezifisch sein. Sie können es in Java tun mit Quartz oder mit nur Java Scheduling gleichzeitige utils (< a href = "http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledExecutorService.html" rel = "nofollow noreferrer"> ScheduledExecutorService ) oder als OS- Ebene cron-Job.

Alle 15 Minuten scheint extrem. Im Allgemeinen würde ich auch Ihnen raten, nur zu truncate / Löschen von Protokolldateien, die nicht mehr geschrieben wird (und sie sind in der Regel über Nacht gerollt).

Jobs sind chargenorientiert. Entweder durch manuelle Auslösung oder cron-Stil (wie Sie scheinen zu wollen).

Still Ich habe nicht Ihre Beziehung zwischen Webapp und cron-Stil Job? Die einzige Webapp Use-Case ich denken konnte, ist, dass Sie haben wollen, ein HTTP-Endpunkt, einen Job zu starten (aber dies steht im Gegensatz Ihre Aussage über das Sein ‚cron-Stil‘).

verwenden in der Regel einen speziellen Rahmen, der den Problembereich ‚Batch-Jobs‘ löst. Ich kann Quarz empfehlen.

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