2010-06-08 4 views
3

Je veux que mes tâches s'exécutent toutes les X secondes, il y a une correspondance entre le travail et X. De même, pendant l'exécution, il est possible d'enregistrer de nouveaux travaux avec leurs propres intervalles.Quelle est l'expression Cron correspondante à tirer toutes les X secondes, où X> 60?

J'ai essayé d'écrire l'expression cron pour de tels scénarios, mais dans la documentation, il est écrit que la valeur de secondes ne peut pas être supérieure à 59. Donc l'expression cron comme ceci: "0/63 * * * *?" n'est pas valide. A première vue, la solution de ce problème semblait être une expression comme celle-ci: "0/3 0/1 * * *?", Mais cela signifie une chose complètement différente: déclencher le travail toutes les trois secondes de chaque minute. Pouvez-vous suggérer quelle est la bonne solution (expression cron) pour cela?

Je sais que je pourrais utiliser des minuteurs simples, mais je dois utiliser des emplois cron en utilisant Quartz.

Répondre

6

La syntaxe cron de Quartz est conçue pour exprimer la synchronisation basée sur l'horloge standard de 24 heures et 60 minutes. Ce n'est pas approprié pour "toutes les n secondes", où n peut être n'importe quelle valeur. Vous ne pourrez pas faire cela avec des expressions cron.

Si vous devez faire cela avec Quartz, vous devez utiliser SimpleTrigger, et non CronTrigger. Vous n'avez pas vraiment d'option, sauf si vous voulez utiliser une collection extrêmement complexe d'expressions cron chevauchées artificiellement.

+0

Merci, je ne savais pas que Quartz a SimpleTrigger. – giolekva

Questions connexes