Le printemps de la Planification: @Prévue vs Quartz
Je suis en train de lire le Spring 3.0 docen matière de planification. Je suis penchée vers le Printemps JobDetailBean pour le Quartz. Cependant, la @Prévue annotation a attiré mon œil. Il apparaît que ce est une autre façon de planification de tâche à l'aide du Framework Spring. Basé sur les docs, de Printemps propose trois mode de programmation:
- @Prévue
- Via Quartz
- Via JDK Minuterie
Je n'ai aucun intérêt dans le JDK Minuterie. Pourquoi devrais-je choisir @Programmées au cours de Quartz? (Quand je parle de Quartz je veux dire en utilisant le Printemps bean wrapper pour le Quartz).
Disons que mon cas est assez complexe que je vais communiquer à un tiers de service web pour importer et exporter des données à des intervalles spécifiés.
Vous devez vous connecter pour publier un commentaire.
Le Quartz est un ordre de grandeur plus complexe que le Printemps est le planificateur intégré, y compris le soutien pour les persistants, les opérations et les travaux distribués. C'est un peu un cochon, cependant, même avec le Printemps de la prise en charge des API.
Si tout ce que vous devez faire est d'exécuter des méthodes sur un haricot toutes les X secondes, ou sur un cron horaire,
@Scheduled
(ou les différentes options de Printemps<tâche>
config schéma) est probablement assezJ'ai ma propre expérience concernant l'utilisation de
@Scheduled
contreQuartz
que la planification, la mise en œuvre, au Printemps de l'application.Les travaux de planification eu les exigences suivantes:
Par conséquent, nous avons d'essayer et d'utiliser le Quartz de mise en œuvre (version 2.2.3) afin de soutenir la persistance d'emplois dans une base de données. Certaines conclusions de base sont les suivantes:
JobListener
etTriggerListener
.Au Printemps, on pourrait planifier une tâche en utilisant FixedRate,FixedDelay et cron. Mais la plupart de la tâche planifiée nécessite la manipulation dynamique des temps d'exécution. Donc, dans ce scénario, il est préférable d'utiliser le Quartz comme il donne la possibilité de stocker les travaux planifiés dans DBJobstore ainsi que RAMJobstore.
Selon Quartz De La Documentation
Nous pouvons utiliser de plus en plus complexes fonctionnalité qui n'existe pas dans la @Planificateur.
par exemple:
scheduler.standby();
et re programmerscheduler.start();
.scheduler.shutdown(true);
etscheduler.shutdown(false);
l'a déclenchée.
travail existant avec le prénom et le groupe (le cas échéant).