J'utilise un quartz pour construire une threadpool en cluster et j'ai un nombre de tâches qui fonctionnent à divers fois. Quelle est la meilleure façon d'exécuter 1 tâche immanemment et une seule fois sur le threadpool en cluster. Je sais que je peux définir la tâche à une haute priorité. Mais quelle est la meilleure façon d'enregistrer une tâche "one shot"? P>
3 Réponses :
Je me sens comme si je dois manquer quelque chose, ou peut-être que vous venez d'oublier ce bit dans les docs:
SimpleRigger (Nom de la chaîne, Groupe de cordes, Date de démarrage, date Endtime, int RepeatCount, longue répétition) code> p>
RepeactInterval ne peut pas être zéro ou le SimpleTrigger lancera une org.quartz.schexception lors de la validation.
Cela ne fonctionne pas pour Quartz 2.2.1. Je reçois une erreur disant ne peut pas instantiier SimpleTrigger
Vous pouvez également utiliser TriggerBuilder classe à rendre la vie un peu plus facile. Il est similaire à ce qui a été posté auparavant, juste un peu plus propre.
Trigger trigger = TriggerBuilder.newTrigger() .startNow() .build();
Cela fonctionne pour Quartz 2.2.1 pour tirer un travail une seule fois.
Je n'arrive pas à trouver un moyen d'ajouter des instructions à ce déclencheur?
Le moyen le plus simple de déclencher un one-shot pour un travail pré-déposé: