Significance of question mark in Java cron
Source Wikipedia:
Question mark (?) is used instead of '*' for leaving either day-of-month or day-of-week blank.
The above statement is not making much sense to me.
So if I write some cron as 0 0 0 ? * *
then does it mean first of every month or it means it will execute daily?
It is a bit confusing as Java crons start with seconds while other crons start with minute.
Solution 1:
According to the Quartz CronTrigger tutorial (Quartz is used by www.cronmaker.com, referenced above), the ?
wildcard is only used in the day of month and day of week fields:
? ("no specific value") - useful when you need to specify something in one of the two fields in which the character is allowed, but not the other. For example, if I want my trigger to fire on a particular day of the month (say, the 10th), but don't care what day of the week that happens to be, I would put "10" in the day-of-month field, and "?" in the day-of-week field.
I guess *
isn't appropriate here because *
means execute on every day of the week, which contradicts the rule saying that it should only run on the 10th of the month.