栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot动态监听rabbitMq队列

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot动态监听rabbitMq队列

很多时候,要求mq队列能够配置,或者说多个用户要求mq队列名称为用户名+固定的字符串,但是监听同一个方法,这个时候就需要用到动态监听。代码如下

    @Autowired
    private AmqpAdmin amqpAdmin;
    @Autowired
    private  SimpleMessageListenerContainer container;
    public String addQueue(Queue queue){
        return amqpAdmin.declareQueue(queue);
    }

    @Override
    public void run(String... args) throws Exception {
        String queueName=SpringUtils.getApplicationContext().getBean(Environment.class).getProperty("queue");//配置文件中配置,也可配置在数据库
        MessageListenerAdapter messageListenerAdapter = new MessageListenerAdapter(new MessageListen());//消费mq消息的类
        List queueNamesList=new ArrayList<>();
        messageListenerAdapter.addQueueOrTagToMethodName(queueName,"getMessage");//消费mq消息的方法
        queueNamesList.add(queueName);
        logger.info("新增队列queueName={}",queueName);
        Queue queue = new Queue(queueName);
        addQueue(queue);
        if(!queueNamesList.isEmpty()){
            String[] strings=new String[queueNamesList.size()];
            container.addQueueNames(queueNamesList.toArray(strings));
        }
        container.setMessageListener(messageListenerAdapter);
    }

如果是多个用户,则是给queueNamesList循环添加数据即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/838988.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号