web-dev-qa-db-fra.com

Signification du point d'interrogation dans Java cron

Source Wikipedia:

point d'interrogation (?) Est utilisé au lieu de '*' pour laisser le jour du mois ou le jour de la semaine vide.

La déclaration ci-dessus n'a pas beaucoup de sens pour moi.

Donc, si j'écris un cron comme 0 0 0 ? * * alors cela signifie-t-il le premier de chaque mois ou cela signifie qu'il s'exécutera quotidiennement?

C'est un peu déroutant car Java crons commencent par secondes tandis que les autres crons commencent par minutes.

46
learner

Selon le Tutoriel Quartz CronTrigger (Quartz est utilisé par www.cronmaker.com, référencé ci-dessus), le ? le caractère générique n'est utilisé que dans les champs jour du mois et jour de la semaine:

? ("pas de valeur spécifique") - utile lorsque vous devez spécifier quelque chose dans l'un des deux champs dans lesquels le caractère est autorisé, mais pas dans l'autre. Par exemple, si je veux que ma gâchette se déclenche un jour particulier du mois (disons le 10), mais peu importe le jour de la semaine qui se trouve, je mettrais "10" dans le jour de champ de mois et "?" dans le champ jour de la semaine.

Je suppose * n'est pas approprié ici car * signifie exécuter tous les jours de la semaine, ce qui contredit la règle selon laquelle il ne doit s'exécuter que le 10 du mois.

94
Dan King