Apache Camel:轮询消费者 [英] Apache Camel: Polling consumer
问题描述
我是Apache Camel的新手,我试图在一个简单的项目中了解和使用轮询消费者" EIP,但我感到有些失落. 有人可以帮我提供一些解释,甚至提供一些可行的示例.
I'm new to Apache Camel and I'm trying to understand and use the Polling Consumer EIP in a simple project but I feel a little bit lost.. Could someone please help me with a little explanation or even with a little working example.
任何帮助将不胜感激 预先感谢
Any help would be appreciated Thanks in advance
推荐答案
在大多数情况下,只需在路径的from()
子句中定义它们即可创建使用者.
for most use cases, you can create a consumer by just defining them in the from()
clause in a route...
from("activemq:inbox").to(new MyProcessor());
但是,您也可以编写自己的POJO轮询使用者逻辑,以更好地控制使用者逻辑...只需使用计时器定期将其初始化,并按以下方式调用receive()
方法:
but, you can also write your own POJO polling consumer logic for more control over the consumer logic...simply initiate it periodically with a timer and call the receive()
method as follows:
from("timer://foo?period=5000").bean(MyBean, "processQueue");
public void processQueue() {
while (true) {
// receive the message from the queue, wait at most 3 sec
String msg = consumer.receiveBody("activemq:inbox", 3000, String.class);
if (msg == null) {
// no more messages in queue
break;
}
// do something with body
}
}
有关更多详细信息,请参阅文档: http://camel.apache.org/polling-consumer
see the docs for more details: http://camel.apache.org/polling-consumer
这篇关于Apache Camel:轮询消费者的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!