【发布时间】:2016-10-07 09:56:33
【问题描述】:
我目前正在编写一个在两个应用程序之间建立连接的系统。其中一个应用程序将消息发送到 glassfish jms 队列。我还没有写接收端,我注意到队列会填满,因为队列没有监听器。
我想做的是检查队列是否几乎已满,以及何时完全清空。有没有办法做到这一点?我真的找不到任何东西。
或者是否可以确保删除旧消息以便继续发送新消息?
【问题讨论】:
标签: jakarta-ee glassfish queue jms
我目前正在编写一个在两个应用程序之间建立连接的系统。其中一个应用程序将消息发送到 glassfish jms 队列。我还没有写接收端,我注意到队列会填满,因为队列没有监听器。
我想做的是检查队列是否几乎已满,以及何时完全清空。有没有办法做到这一点?我真的找不到任何东西。
或者是否可以确保删除旧消息以便继续发送新消息?
【问题讨论】:
标签: jakarta-ee glassfish queue jms
当然,虽然存在实际限制,但像 JMS 这样的排队系统不会“填满”。它被设计成具有“无限”的容量。显然,您无法在不占用资源的情况下发送无限数量的消息,因此存在实际限制。
听起来您需要在消息生产者端为它产生的消息定义一个time to live。因此,例如,您可以说消息只能存在 10 秒。这样,您就不太可能收到“旧”消息。请注意,根据您的 JMS 提供商,您仍然可能会收到大约 TTL 年龄的消息,但您不太可能收到更旧的消息。
【讨论】: