我正在开发一个拥有多个用户的系统,就像这个论坛一样,我将为每个用户创建一个队列。但是,如果用户长时间没有登录,比如3个月,我将删除该用户的队列,换句话说,我将删除过去3个月内没有活跃消费者的任何队列。 activemq代理可以自动完成这项工作吗?
答案 0 :(得分:1)
是的,你可以。但是你会删除已经空了一段时间的队列,而不是没有消费者的队列。
然而,三个monts似乎需要很长时间来清理队列,而且您可能希望在小时或分钟范围内进行清理,因为队列实际上在代理内部分配资源。
<broker xmlns="http://activemq.apache.org/schema/core" schedulePeriodForDestinationPurge="10000">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000"/>
</policyEntries>
</policyMap>
</destinationPolicy>
</broker>