Camel路由到Websphere MQ,读取间隔

时间:2015-04-15 22:35:47

标签: apache-camel activemq ibm-mq

我在ActiveMQ中使用camel路由以便从websphere MQ队列读取消息并将消息转发到activeMQ队列,它工作正常但似乎wmq读取操作太频繁(每1秒)。 如何定义读取间隔值?例如,每隔10秒读取一次消息?

很多 尼古拉斯

2 个答案:

答案 0 :(得分:1)

您需要更改用于MQ端点的JmsComponent的receiveTimeoutrequestTimeoutCheckerInterval。默认情况下,这些值为1秒。

参考: - http://camel.apache.org/jms.html

答案 1 :(得分:-1)

更改读取队列间隔更改jms组件设置似乎是错误的方法。

用作Camel jms组件的底层技术的Spring JMS经常用于轮询队列。 更改jms端点的轮询间隔需要深入了解Spring JMS的内部。我使用这种方法的实验没有得到任何积极的结果。

满足您要求的另一种方式是投票消费者。这个想法定期用计时器(或石英等其他调度程序)运行队列读取操作。

from("timer://foo?period=5000").bean("queueReader")

queueReader bean应该实现队列读取操作。

但这种方法有一些pifalls。其中之一是当队列有多个消息时如何处理情况。这需要循环队列读取,但新消息可以在现有消息处理时到达。这种引用需要低级别和容易出错的编码。

您将在Camel here

中阅读有关轮询消费者的详细信息