2010-08-09 4 views
18

J'utilise Quartz Scheduler avec Spring. Je veux configurer la même chose avec le calendrier suivant:Quartz Cron Expression: Exécuter le travail toutes les 10 minutes à partir de maintenant (immédiatement)

Run Job Toutes les 10 minutes à partir de maintenant

J'utilise l'expression suivante pour le même. Je pensais que * dans le champ des minutes le ferait fonctionner à la première minute, mais ce n'est pas le cas. Il court les 10 premières minutes à partir de maintenant puis toutes les 10 minutes après. Quelqu'un peut-il me suggérer la raison de ce comportement et la solution à mon problème aussi?

Répondre

9

vérifier la minute où votre à maintenant et les ajouter comme une liste à votre crontrigger. si vous commencez la détente à la minute 12 par exemple ajouter

0 2,12,22,32,42,52 * * * ? 

comme expression cron

Edit:

Une autre solution serait de définir un simpletrigger qui se répète toutes les dix minutes

SimpleTrigger trigger = new SimpleTrigger("myTrigger", 
              null, 
              new Date(), 
              null, 
              SimpleTrigger.REPEAT_INDEFINITELY, 
              10L * 60L * 1000L); 
+0

Merci qui travailleraient, mais c'est à pas très intelligent, ne l'est pas. Je travaille sur une énorme application qui nécessitera le démarrage de CronJob. Je ne veux pas changer l'expression de cron chaque fois que je vais commencer mon application. Avons-nous une solution différente s'il vous plaît? –

+1

Je crains que la version plus intelligente ne soit pas configurable au printemps. –

+0

vous pouvez ajouter @PostContruct avant votre méthode, donc après l'initialisation de votre bean, il s'exécute pour la première fois. – hiway

0

Vous pouvez utiliser quelque chose comme

0 1-59/10 * * * ? 

qui déclenchera le travail à une minute et 10 minutes après. Je n'ai pas essayé mais ça a l'air correct. :)

-2
*/10 * * * * 

Toutes les 10 minutes à partir du moment où vous créez le travail cron, wether que vous préférez (crontab utilisateur, /etc/cron.d/, ...).

+2

dans le quartz, les crons peuvent courir toutes les secondes. Votre solution fonctionnerait toutes les 10 secondes dans la syntaxe d'ordonnancement de quartz cron. Cela m'a fait trébucher quand j'avais un travail que je testais pour courir toutes les minutes, donc j'ai utilisé la syntaxe cron de gnu (comme ci-dessus), et l'ai fait fonctionner toutes les secondes de chaque minute. ughhhh ..... parler des tests de concurrence ... –

Questions connexes