activemq - 消息未被使用时如何清理activemq队列
问题描述
我在我的 Java 应用程序中使用 ActiveMQ。我正在使用一个复合队列,并且在每个队列中我们都使用物理队列。
如果一条消息在特定的时间范围内没有被消费,它是否会被删除?
我的问题是一些应该使用消息的组件并不总是工作,因此我的磁盘变得越来越大。
解决方案
处理此问题的标准、符合规范的方法是使用javax.jms.MessageProducer#setTimeToLive
告诉代理仅将消息保留一段时间的方法。
如果您不想更改代码,则可以让代理完成工作。在 ActiveMQ 5.x 中,您可以使用时间戳插件。在ActiveMQ Artemis中,您可以使用.expiry-delay
address-setting
推荐阅读
- c# - xamarin 表单 - 清除 SearchBar
- javascript - 如何使用 js 更改选择选项值的内容
- postgresql - Postgressql - 是否可以区分这两个值是否为真?
- c# - ObjectDisposedException:无法访问已释放的上下文实例
- regex - 如何使用正则表达式从字符串中提取第 n 个 URL?
- python - 如何使用 python 读取 txt 文件并将部分 txt 格式化为表格
- alexa-skills-kit - 在我的网站上执行某些操作时进行 alexa ding
- cryptocurrency - Bep20 代币 pancakeswap 上的第一个流动性提供者问题
- android - 在锁定任务模式下允许访问 USB 调试授权对话框
- javascript - 我一直在尝试通过在 appscript 中使用 UrlFetchApp 从 URL 获取数据,但在我的情况下它返回空值,如何解决这个问题?