Timer Component
The timer: component is used to generate message exchanges when a timer fires You can only consume events from this endpoint.
URI format
Where options is a query string that can specify any of the following parameters:
| Name |
Default Value |
Description |
| name |
null |
The name of the Timer object which is created and shared across endpoints. So if you use the same name for all your timer endpoints then only one Timer object & thread will be used |
| time |
|
The date/time that the (first) event should be generated. |
| period |
-1 |
If set to greater than 0, then generate periodic events every period milliseconds |
| delay |
-1 |
The number of milliseconds to wait before the first event is generated. Should not be used in conjunction with the time parameter. |
| fixedRate |
false |
Events take place at approximately regular intervals, separated by the specified period. |
| daemon |
true |
Should the thread associated with the timer endpoint be run as a daemon. |
Exchange Properties
When the timer is fired it adds the following information as properties to the Exchange.
| Name |
Type |
Description |
| org.apache.camel.timer.name |
String |
the name option |
| org.apache.camel.timer.time |
Date |
the time option |
| org.apache.camel.timer.period |
long |
the period option |
| org.apache.camel.timer.firedTime |
Date |
Camel 1.5: the current time when the consumer fired |
Message Headers
When the timer is fired it adds the following information as headers to the IN message
| Name |
Type |
Description |
| firedTime |
Date |
Camel 1.5: the current time when the consumer fired |
Using
To setup a route that generates an event every 60 seconds:
from("timer:).to("bean:myBean?methodName=someMethodName");
The above route will generate an event then invoke the someMethodName on the bean called myBean in the Registry such as JNDI or Spring.
See Also