The quartz: component provides a scheduled delivery of messages using the Quartz scheduler.Each endpoint represents a different timer (in Quartz terms, a Trigger and JobDetail).
quartz://timerName?parameters quartz://groupName/timerName?parameters quartz://groupName/timerName/cronExpression
You can configure the Trigger and JobDetail using the parameters
Property | Description |
trigger.repeatCount | How many times should the timer repeat for? |
trigger.repeatInterval | The amount of time in milliseconds between repeated triggers |
job.name | Sets the name of the job |
For example the following routing rule will fire 2 timer events to the endpoint mock:results
from("quartz://myGroup/myTimerName?trigger.repeatInterval=2&trigger.repeatCount=1").to("mock:result");
Quartz supports Cron-like expressions for specifying timers in a handy format. You can use these expressions in the URI; though to preserve valid URI encoding we allow / to be used instead of spaces and $ to be used instead of ?.
For example the following will fire a message at 12pm (noon) every day
from("quartz://myGroup/myTimerName/0/0/12/*/*/$").to("activemq:Totally.Rocks");
which is equivalent to using the cron expression
0 0 12 * * ?
The following table shows the URI character encodings we use to preserve valid URI syntax
URI Character | Cron character |
'/' | ' ' |
'$' | '?' |