ActiveMQ代理可以自动删除长时间没有活动消费者的队列吗?

时间:2013-10-11 05:11:03

标签: activemq

我正在开发一个拥有多个用户的系统,就像这个论坛一样,我将为每个用户创建一个队列。但是,如果用户长时间没有登录,比如3个月,我将删除该用户的队列,换句话说,我将删除过去3个月内没有活跃消费者的任何队列。 activemq代理可以自动完成这项工作吗?

1 个答案:

答案 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>

Reference