如何在spring amqp中运行时添加/删除使用者?

时间:2014-05-29 09:18:25

标签: java spring rabbitmq spring-amqp

我在每台服务器上运行一定数量的侦听器,这些侦听器等于侦听器并发。以下是配置

<rabbit:listener-container
    connection-factory="rabbitConnectionFactory" concurrency="${compute.listener.concurrency}"
    requeue-rejected="false" prefetch="1">
    <rabbit:listener queues="${compute.queue}" ref="computeListener"
        method="run" />
</rabbit:listener-container>

在我的作业运行时,是否有任何方法可以在运行时在任何服务器上添加/删除侦听器数量,而无需更改此设置并重新部署应用程序?

可能是某些命令行工具在运行时添加/删除消费者数量?

1 个答案:

答案 0 :(得分:0)

您可以手动执行:SimpleMessageListenerContainer.setConcurrentConsumers()/setMaxConcurrentConsumers(),需要为id元素指定<rabbit:listener>。使用它,您可以从应用程序上下文中获取bean,并使用适当的值调用这些方法。

没有任何特定的工具可以在外部进行。

但是你可以这样做,例如使用Spring Integration&#39; <int-stream:stdin-channel-adapter>。或者写一些@ManagedResource并使用@@ManagedAttribute将其公开给JMX,以更改基础SimpleMessageListenerContainer

的值