2015-10-05 120 views
0

新发布的ActiveMQ(5.12)现在支持暂停和恢复消费者队列中的消息传递,这非常有用。 的问题是,当你恢复消息传递,ActiveMQ的暂停/恢复功能无法正常恢复

  1. 如果进入队列的消息:代理将立即发送未决消息给消费者这是完全确定。
  2. 但是,如果没有消息进入队列:直到期满检查是对队列进行队列中的待决消息将不被发送给消费者(默认情况下为30秒,并且可以由expireMessagesPeriod来控制属性),然后未过期的消息将被发送给消费者。

显然,我们可以改变expireMessagesPeriod限制这一延迟,但是当你需要一个以毫秒为单位的精度,执行期满检查每一个以毫秒为单位将没有意义。

有没有办法强制队列在恢复后立即开始发送消息?

+0

因此,你正在使用暂停/恢复的东西,需要毫秒精度?那很有意思。也许你应该在ActiveMQ问题追踪器上创建一个JIRA作为此事的功能请求? –

+0

是的,它很酷。好的,我刚刚在JIRA上添加了一个条目[https://issues.apache.org/jira/browse/AMQ-6000] – mor

回答

0

ActiveMQ团队修复的错误(详细信息here),并且将出现在5.12.2版本中。