RabbitMQ 关闭、开启消费

默认情况下,消费者在项目启动的时候就开始监听队列消费了,在某些特殊情况,可能需要临时关闭消费

java 复制代码
    @Autowired
    private RabbitTemplate rabbitTemplate;
    
    /**
     * 发送消息
     *
     * @author 蔡定努
     */
    @GetMapping
    public boolean aa() {
         rabbitTemplate.convertSendAndReceive("name", "123");
        return true;
    }

    /**
     * 消息监听
     */
    @RabbitListener(id = "con", bindings = @QueueBinding(
            value = @Queue(name = "name"),
            exchange = @Exchange("ex"),
            key = "ex"),
            concurrency = "3", ackMode = "AUTO"
    )
    public void ack(String name con() throws InterruptedException {
        log.info("---收到消息-----");
        sleep(10000);
    }


    @Autowired
    private RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry;

    /**
     * 开启/关闭单个消费者
     */
    @GetMapping("switchConsumer/{queueId}/{flag}")
    public void switchConsumer(@PathVariable("queueId") String queueId, @PathVariable(value = "flag") Boolean flag) {
       // Collection<MessageListenerContainer> listenerContainers = rabbitListenerEndpointRegistry.getListenerContainers();
       //  for (MessageListenerContainer listenerContainer : listenerContainers) {
       //      listenerContainer.stop();
       //  }
       //

        MessageListenerContainer listenerContainer = rabbitListenerEndpointRegistry.getListenerContainer(queueId);
        Optional.ofNullable(listenerContainer).ifPresent(messageListenerContainer -> {
            if (flag) {
                messageListenerContainer.start();
                log.info("消费者开启");
            } else {
                messageListenerContainer.stop();
                log.info("消费者关闭");
            }
        });
    }
相关推荐
hINs IONN7 小时前
RabbitMQ HAProxy 负载均衡
rabbitmq·负载均衡·ruby
未秃头的程序猿9 小时前
从零到一:深入浅出分布式锁原理与Spring Boot实战(Redis + ZooKeeper)
spring boot·分布式·后端
eSsO KERF10 小时前
RabbitMQ之交换机
分布式·rabbitmq·ruby
Albert Edison11 小时前
【RabbitMQ】Topics 通配符模式(使用案例)
分布式·rabbitmq
yaoyouzhong20 小时前
分布式与集群,二者区别是什么?
分布式
橙露21 小时前
SpringBoot 整合 MinIO:分布式文件存储上传下载
spring boot·分布式·后端
Ulyanov1 天前
Apache Kafka在雷达仿真数据流处理中的应用
分布式·python·kafka·apache·雷达电子战
Ssan PRIN1 天前
深度掌握 RabbitMQ 消息确认(ACK)机制,确保消息万无一失
分布式·rabbitmq
切糕师学AI1 天前
深入理解 CAP 定理:分布式系统中的一致性、可用性与分区容错
分布式·cap
jessecyj1 天前
【RabbitMQ】超详细Windows系统下RabbitMQ的安装配置
windows·分布式·rabbitmq