0

新发布的 ActiveMQ (5.12) 现在支持暂停和恢复向队列消费者传递消息,这非常有用。问题是,当您恢复消息传递时,

  1. 如果有消息进入队列:broker 会立即将待处理的消息发送给消费者,这完全没问题。
  2. 但是如果没有消息进入队列:队列中的未决消息将不会发送给消费者,直到对队列进行过期检查(默认为30秒,可以通过expireMessagesPeriod属性控制)和非过期消息将在之后发送给消费者。

显然我们可以改变expireMessagesPeriod来限制这个延迟,但是当你需要一个 milisec 精度时,每 milisec 执行一次过期检查是没有意义的。

无论如何强制队列在恢复后立即开始发送消息?

4

1 回答 1

0

由 ActiveMQ 团队修复的错误(详情请点击此处)并将出现在 5.12.2 版本中。

于 2015-11-11T05:58:02.450 回答