Question

Je recherche un moyen efficace d'exécuter une méthode tous les jours à 15 heures, quelle que soit la date à laquelle l'application a été lancée ou la durée de son exécution.

Cela doit être entièrement effectué à partir de l'application sans intervention du système d'exploitation (ex. Planificateur de tâches Windows)

J’ai expérimenté java.util.Timer dans diverses configurations, mais j’ai échoué.

Toute aide serait appréciée.

Merci.

Était-ce utile?

La solution

Vous devriez jeter un coup d’œil sur le Quartz , qui est un système de planification des travaux basé sur Java.

Autres conseils

Vous voudrez probablement utiliser quelque chose comme le moteur à quartz pour effectuer des tâches telles que l'exécution de tâches. qui a échoué (comme lors d’un crash ahem ) et simplifie considérablement la gestion des threads.

Par exemple, si vous utilisez des threads, que vous le mettez en veille et que vous le réveillez 86400 secondes (un jour) plus tard, vous vous réveillez et une heure en retard (jour = 82800 secondes) ou tôt (jour = 90000 secondes) à l'heure avancée de l'heure d'été. jour, alors soyez prudent avec la solution que vous choisissez

Une méthode JDK intégrée consiste à faire ce que d’autres ont suggéré et à calculer d’abord:

  • heure courante - heure désirée

Ensuite, vous pouvez utiliser quelque chose comme a planifiez l'exécuteur pour soumettre les tâches et exécutez-les avec un délai particulier. C’est beaucoup plus simple que les options que vous avez avec des frameworks comme Quartz , mais ne nécessite pas de serveur externe. dépendance.

De plus, vous devez toujours répertorier le JDK que vous utilisez pour que les utilisateurs puissent vous apporter des solutions à votre version du JDK.

Vous pouvez démarrer un fil qui calcule la différence et se met en veille pour cette heure. Quand il se réveille, il exécute la méthode, recalcule et dort. Est-ce ce que vous vouliez dire?

Comme l'ont déclaré d'autres personnes, Quartz est un choix. Grâce à celui-ci, vous pouvez effectuer des opérations, des tâches ou des déclencheurs similaires à ceux de Cron. Voici un lien sur ce sujet: http://www.ibm.com/developerworks/java/library/j-quartz/index.html

Jcrontab

  

Jcrontab est un planificateur écrit en Java. L’objectif du projet est de fournir une planification entièrement fonctionnelle pour les projets Java.

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