【发布时间】:2015-10-05 06:28:55
【问题描述】:
新发布的 ActiveMQ (5.12) 现在支持暂停和恢复向队列消费者传递消息,这非常有用。 问题是,当您恢复消息传递时,
- 如果有消息进入队列:代理会立即将待处理的消息发送给消费者,完全可以。
- 但是如果没有消息进入队列:队列中的未决消息将不会发送给消费者,直到对队列执行过期检查(默认为30秒,可以由 expireMessagesPeriod 属性控制),未过期的消息将在之后发送给消费者。
显然我们可以更改 expireMessagesPeriod 来限制这种延迟,但是当您需要一个毫秒精度时,每毫秒执行一次过期检查是没有意义的。
有没有办法强制队列恢复后立即开始发送消息?
【问题讨论】:
-
所以您正在使用暂停/恢复来处理需要毫秒精度的事情?那很有意思。也许您应该在 ActiveMQ 问题跟踪器上创建一个 JIRA 作为此问题的功能请求?
-
是的,而且非常酷。好的,我刚刚在 JIRA 上添加了一个条目here