0

我是 ActiveMQ 的新手,正在做一个涉及从队列中读取消息然后批量处理它们的项目。(我将它们铲到一次只能处理 100 个的第 3 方 API,尽管少于 100 个也可以)

我发现的每个示例都涉及以原子方式处理每条消息的事件驱动代码。是否有允许表单伪代码的 gem、插件或其他方法

while(!queue.empty?) do
   chunk = []

   while(!queue.empty? && chunk.size < 100) do 
      chunk << queue.read
   end

   do_something_with(chunk)
end

或者这是一个傻瓜的差事还是什么?

4

1 回答 1

1

我认为您可以在这种情况下使用消息分组。这样,您可以在一批邮件中分组,因为发件人已经设置了分组标头。以下是有关 ActiveMQ 如何处理此问题的信息:ActiveMQ on Message Grouping

我不是 ruby​​ 编码器,但我假设您在谈论事件驱动 API 时使用了一些“on_message”函数。IBM 有一个很好的教程,如何在消息侦听器 (MDB) 中接收 JMS 消息组。是java和WebSphere MQ,但是JMS的概念应该是一致的。
IBM 在 MDB 中的 JMS 消息分组

您可能会也可能无法将其转换为 Rails,但它可能会在等待正确的代码示例出现在这里时给出一些提示!:)

于 2012-06-06T20:34:49.100 回答