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("消费者关闭");
            }
        });
    }
相关推荐
小小工匠7 分钟前
架构思维:构建高并发扣减服务_分布式无主架构
分布式·架构·分布式无主架构
菠萝崽.2 小时前
Elasticsearch进阶篇-DSL
大数据·分布式·elasticsearch·搜索引擎·全文检索·jenkins·springboot
hong_zc3 小时前
服务端高并发分布式结构演进之路
分布式
461K.4 小时前
写spark程序数据计算( 数据库的计算,求和,汇总之类的)连接mysql数据库,写入计算结果
大数据·分布式·spark
却道天凉_好个秋12 小时前
系统架构设计(九):分布式架构与微服务
分布式·架构·系统架构
predisw16 小时前
kafka connect 大概了解
分布式·kafka
计算机毕设定制辅导-无忧学长18 小时前
RabbitMQ 快速上手:安装配置与 HelloWorld 实践(二)
分布式·rabbitmq·ruby
啾啾Fun18 小时前
【Java微服务组件】分布式协调P1-数据共享中心简单设计与实现
java·分布式·微服务
梦想画家21 小时前
Scrapy进阶实践指南:从脚本运行到分布式爬取
分布式·scrapy·数据工程
东阳马生架构1 天前
Seata源码—5.全局事务的创建与返回处理二
分布式·seata·分布式事务