Question

Dans une application web java (servlets / printemps de mvc), en utilisant tomcat, est-il possible d'exécuter un service de type cron job?

par exemple. toutes les 15 minutes, purger la base de données de journal.

Pouvez-vous faire cela d'une manière qui est récipient indépendant, ou il doit être exécuté à l'aide tomcat ou un autre contenant?

S'il vous plaît préciser si la méthode est garanti de fonctionner à un moment précis ou qui circule toutes les 15 minutes, mais il peut être remis à zéro, etc. si les recyclages d'application (c'est la façon dont il est en .net si vous utilisez des minuteries)

Était-ce utile?

La solution

Comme indiqué dans Chapitre 23. Planification et Enfilez Pooling , le printemps est un soutien de planification à travers des cours d'intégration pour le Timer et le planificateur Quartz ( http: //www.quartz- scheduler.org/ ). Pour des besoins simples, je vous recommande d'aller avec le Timer JDK.

Notez que Java ordonnanceurs sont généralement utilisés pour déclencher Java emplois à vocation commerciale . Pour les tâches sysadmin (comme l'exemple que vous avez donné), vous devriez vraiment préférer cron et outils d'administration traditionnels (bash, etc).

Autres conseils

Si vous utilisez Spring, vous pouvez utiliser le haut-crochets Quartz ou minuterie. Voir http://static.springsource.org/spring/docs /2.5.x/reference/scheduling.html

Il sera spécifique conteneur. Vous pouvez le faire en Java avec Quartz ou tout simplement en utilisant ordonnancement utils simultanées de Java (< a href = "http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledExecutorService.html" rel = "nofollow noreferrer"> ScheduledExecutorService ) ou en tant que OS- cron job niveau.

Toutes les 15 minutes semble extrême. En général, je voudrais aussi vous conseiller que de tronquer / supprimer les fichiers journaux qui ne sont plus en cours d'écriture (et ils sont généralement roulai du jour au lendemain).

Les emplois sont orientés par lots. Soit par déclenchement manuel ou de style Cron (comme vous semblez vouloir).

Cependant, je ne comprends pas votre relation entre travail webapp et de style Cron? Le cas d'utilisation que webapp je pouvais penser est que vous voulez avoir un point de terminaison HTTP pour déclencher un emploi (mais s'y oppose votre déclaration au sujet d'être « style Cron »).

En général, utiliser un cadre dédié, ce qui résout le problème de la zone des « emplois-batch ». Je peux recommander le quartz.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top