删除非活动目的地
非活动目的地
一个“非活动”目的地是指在某个配置时间段内没有待处理消息且没有连接的消费者。
默认情况下,代理不会检查非活动目的地。这由以下选项的默认值控制: schedulePeriodForDestinationPurge="0"
和 gcInactiveDestinations="false"
.
但是,可以将代理配置为清除非活动目的地。要做到这一点,需要使用经过特殊配置的目的地策略条目,并结合代理属性:schedulePeriodForDestinationPurge > 0
。
示例
<broker xmlns="https://activemq.apache.org/schema/core" schedulePeriodForDestinationPurge="10000">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000"/>
</policyEntries>
</policyMap>
</destinationPolicy>
</broker>
在此示例中,代理将每 10
秒检查一次非活动目的地,如 schedulePeriodForDestinationPurge="10000"
所确定。当触发目的地清除时,代理将删除任何空闲时间超过 inactiveTimoutBeforeGC="30000"
毫秒(默认:60000
毫秒)的队列,并且其相应的目的地策略条目上设置了 gcInactiveDestinations="true"
。
删除目的地时,代理将记录类似的消息
INFO Queue - TEST.QUEUE Inactive for longer than 30000 ms - removing ...