Polling Consumer
Camel supports implementing the Polling Consumer from the EIP patterns using the PollingConsumer interface which can be created via the Endpoint.createPollingConsumer() method.
So in your Java code you can do
Endpoint endpoint = context.getEndpoint("activemq:my.queue"); PollingConsumer consumer = endpoint.createPollingConsumer(); Exchange exchange = consumer.receive();
There are 3 main polling methods on PollingConsumer
Method name |
Description |
---|---|
Waits until a message is available and then returns it; potentially blocking forever |
|
Attempts to receive a message exchange immediately without waiting and returning null if a message exchange is not available yet |
|
Attempts to receive a message exchange, waiting up to the given timeout and returning null if no message exchange could be received within the time available |
Scheduled Poll Components
Quite a few inbound Camel endpoints use a scheduled poll pattern to receive messages and push them through the Camel processing routes. Since this a such a common pattern, polling components can extend the ScheduledPollConsumer base class which makes it simpler to implement this pattern.
There is also the Quartz Component which provides scheduled delivery of messages using the Quartz enterprise scheduler.
For more details see
- PollingConsumer
- Scheduled Polling Components
Using This Pattern
If you would like to use this EIP Pattern then please read the Getting Started, you may also find the Architecture useful particularly the description of Endpoint and URIs. Then you could try out some of the Examples first before trying this pattern out.