Question

Comment puis-je exécuter une tâche quotidienne à un moment précis (par exemple 11h00) à l'aide java.util.Timer? J'utilise JDK 1.4.2, je sais qu'il est vieux, mais il est ce que le projet a besoin.

Était-ce utile?

La solution

Le quartz est la solution la plus connue pour planifier les processus dans des environnements Java, mais vous avez beaucoup d'options. Cochez cette liste:

Quartz est un système de planification de tâche libre qui peut être intégré avec, ou utilisé le long du côté pratiquement toute application J2EE ou J2SE. Le quartz peut être utilisé pour créer des programmes simples ou complexes.

Jcrontab est conçu pour être étendu et intégré à tout projet. Et stocke les Reads tâches à exécuter dans un fichier, une base de données ou un EJB et fournit une interface utilisateur Web et une interface graphique swing de base.

Essiembre Scheduler J2EE est un mécanisme simple d'ordonnancement des tâches pour les applications J2EE . Cette bibliothèque peut être considérée comme une enveloppe autour des classes et de Timer TimerTask trouvés dans l'API Java standard. Configuration des tâches à exécuter et leur fréquence est basé sur XML.

cron4j est un programmateur pour la plate-forme Java 2 qui est très similaire au démon cron UNIX.

Oddjob L 'objectif de est de fournir un peu d'ordre et de la visibilité à tous les fichiers de traitement par lots et tâches cron qui lient les processus d'affaires critiques d'une entreprise ensemble.

Fulcrum Scheduler fournit un service de planificateur . Il est basé sur le TurbineScheduler fourni avec Turbine, mais tous les vieux trucs a été supprimé. Actuellement, seul le Planificateur non persistant est fait. Il charge des travaux programmés à partir du fichier xml config composant.

Gos4j -Goal planification orientée pour Java est une façon de l'organisation des priorités de traitement en fonction des objectifs.

Planificateur de tâches est un programme de commandes fonctionnant comme un démon, et peut être contrôlé en utilisant une interface utilisateur graphique. Le Job Scheduler utilise une configuration XML pour les programmes planifiés, des scripts et pour le moment et la fréquence de traitement des tâches. Une API est disponible que le contrôle des mains des événements et l'exploitation forestière à vos travaux.

JDRing est une bibliothèque de programmation Java léger qui est simple et petit, mais prend toujours en charge les alarmes sonnent à intervalles réguliers, comme des événements ponctuels, ou sur les horaires complexes avec un contrôle complet comme cron.

jBatchEngine est un spooler de traitement par lots écrit en Java. En constraste à temps conduit ordonnanceurs comme Cron, jBatchEngine est événementielles.

MyBatchFramework est un cadre léger open source conçu pour créer facilement robustes et faciles à gérer des programmes de traitement par lots dans le langage Java.

super avec SuperScheduler et SuperWatchdog est un planificateur de tâches Java avec riches GUI pour toutes les applications. Il est la plate-forme neutre. Particulièrement bon pour être un planificateur de tâches pour Linux et Solaris. Il fournit un ensemble de fonctionnalités super du planificateur de Microsoft Windows. Il permet la programmation déclenchée par un événement. Il peut planifier des tâches dans un environnement distribué. Une tâche sera exécutée une fois et une seule fois parmi toutes les machines du réseau. Toutes les tâches sont réglables vacances. Même chaque travail est un travail VEILLE, l'histoire sera une bonne trace pour d'importants tasks. Il prend en charge Internationalisation.

source: Open Source d'emploi ordonnanceurs en Java

Autres conseils

Regardez dans TimerTask et minuterie -. Les deux sont dans cette version du JDK

Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

Définir pour exécuter la première date que vous voulez alors le nombre de millisecondes en un jour comme délai.

Est-il possible pour vous d'utiliser une bibliothèque, comme cron4j ? Il rendra votre tâche beaucoup plus facile!

  • Java Timers peut exécuter un travail quelconque à des intervalles, des temps pré-fixe, etc.etc.
  • bibliothèque Quartz
  • Si vous voulez vraiment être nu-os à son sujet, l'envelopper dans un script shell et mis en en Cron.

Vous devez utiliser Quartz

Je ne sais jamais qui lance Quartz en premier lieu cependant.

Si vous avez un serveur d'application ou d'un artefact similaire, vous pouvez configurer le travail là-bas Quartz et le faire exécuter votre tâche au moment donné.

Peut-être, ce poste récent vous aide:

Est-ce que cette pause mon fil Java pendant une minute?

Ma réponse à cette question est d'utiliser une application Java intégrée dans la mise en œuvre basée sur les classes java.util.Time et java.util.TimerTask: Est-ce que cette pause mon fil Java pendant une minute?

Ou, vous pouvez utiliser le service crontab pour les plates-formes * nix (disponible pour les plates-formes Windows aussi). C'est le style simple et poids léger pour exécuter un travail autonome périodiquement.

[] 's,

Et passé

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