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.
It is a wildcard for every part of the cron schedule expression. So * * * * * means every minute of every hour of every day of every month and every day of the week .
Meaning of cron expression 0 * * * * *? I think it means the scheduler is expected to run every seconds.
Asterisks indicate that the cron expression matches for all values of the field. For example, "*" in the minute field means every minute.
A cron expression is a string consisting of six or seven subexpressions (fields) that describe individual details of the schedule. These fields, separated by white space, can contain any of the allowed values with various combinations of the allowed characters for that field.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With