首页 > 其他分享 >RabbitMQ-记录一个问题及解决

RabbitMQ-记录一个问题及解决

时间:2024-08-17 15:27:24浏览次数:6  
标签:false QUERE 记录 rabbitmqProperties CommonConstants RabbitMQ 解决 channel NAME

我在配置文件中写入了
rabbitmq: host: 127.0.0.1 port: 5672 username: guest passport: guest virtualhost: / switchFlag: true pool_size: 10
然后希望实现一个监听器,所以加上了注解形式@RabbitListener(queues = CommonConstants.QUERE_NAME_NOTIFY),由于我工作环境原因,在不同电脑上coding(笔记本没有安装rabbitMQ),为了能否方便使用配置文件中的switchFlag进行切换,所以使用了@ConditionalOnProperty(value = "rabbitmq.switchFlag"),但是我今天心血来潮,想把direct的exchange切换成topic,由于之前的做法是`public void run(ApplicationArguments args) throws Exception {
String host = rabbitmqProperties.getHost();
Integer port = rabbitmqProperties.getPort();
String userName = rabbitmqProperties.getUsername();
String password = rabbitmqProperties.getPassport();
String virtualhost = rabbitmqProperties.getVirtualhost();
Integer poolSize = rabbitmqProperties.getPoolSize();

    RabbitmqConnectionPool.initRabbitmqConnectionPool(host, port, userName, password, virtualhost, poolSize);
    RabbitmqConnection connection = RabbitmqConnectionPool.getConnection();
    Channel channel = connection.getConnection().createChannel();
    // 声明exchange中的消息为可持久化,不自动删除
    // channel.exchangeDeclare(CommonConstants.EXCHANGE_NAME_DIRECT, BuiltinExchangeType.DIRECT, true, false, null);

    channel.exchangeDeclare(CommonConstants.EXCHANGE_NAME_TOPIC, BuiltinExchangeType.TOPIC, true, false, null);

    // 声明点赞的消息队列

// channel.queueDeclare(CommonConstants.QUERE_NAME_PRAISE, true, false, false, null);
// //绑定队列到交换机
// channel.queueBind(CommonConstants.QUERE_NAME_PRAISE, CommonConstants.EXCHANGE_NAME_DIRECT, CommonConstants.QUERE_KEY_PRAISE);
//
// // 声明收藏的消息队列
// channel.queueDeclare(CommonConstants.QUERE_NAME_COLLECT, true, false, false, null);
// //绑定队列到交换机
// channel.queueBind(CommonConstants.QUERE_NAME_COLLECT, CommonConstants.EXCHANGE_NAME_DIRECT, CommonConstants.QUERE_KEY_COLLECT);

    channel.queueDeclare(CommonConstants.QUERE_NAME_NOTIFY, true, false, false, null);
    channel.queueBind(CommonConstants.QUERE_NAME_NOTIFY, CommonConstants.EXCHANGE_NAME_TOPIC, CommonConstants.QUERE_KEY_NOTIFY);

    channel.close();`而这个的运行是在listen之后的,导致一直在报bug。最后解决办法是:先手动注释listen的注解,声明exchange和queue之后,再重新运行代码。

标签:false,QUERE,记录,rabbitmqProperties,CommonConstants,RabbitMQ,解决,channel,NAME
From: https://www.cnblogs.com/coldcodeSJTU/p/18364448

相关文章

  • 解决麒麟 V10 SP1 升级 Python 后 Yum 不可用问题
    目录一、前提概要二、解决办法1、卸载原有的python2、安装Python3.7.9rpm3、安装一系列 yum相关rpm4、rpm包下载一、前提概要    在部署gaussDB的时候,安装代理时要求python版本满足3.7.9,但已安装的麒麟V10内集成的python版本是3.7.4,且安......
  • VSCode中解决python模块导入问题
    原因环境变量中不包含当前路径解决方法解决方法有很多种,包括在环境变量文件夹添加pth文件,在导入模块前使用动态添加当前模块的路径到环境变量中。这里介绍一种比较优雅的方案,修改VSCode配置文件在设置中选择“工作区”,搜索terminal.integrated.env在settings.json中编辑......
  • electron-forge通过Squirrel.Windows打包导致的asar文件过大的解决方案
    环境我的Eectron环境如下:"@electron-forge/cli":"^7.1.0","@electron-forge/maker-deb":"^7.1.0","@electron-forge/maker-rpm":"^7.1.0","@electron-forge/maker-squirrel":"^7.1.0",&q......
  • [已解决] Python RecursionError
    [已解决]PythonRecursionError概述在Python编程中,RecursionError是一个常见的错误,它通常发生在递归调用深度过大时。递归是一种强大的编程技术,允许函数调用自身来解决问题。然而,每个递归函数都必须有一个明确的退出条件,以防止无限递归和RecursionError的发生。本文将深......
  • 数字孪生智慧工地解决方案
    1.行业背景与挑战建筑行业面临材料成本高、施工管理问题、环境污染、劳资纠纷和安全隐患等挑战。智慧工地的发展趋势需要集成统一管理、高效协同工作以及自动化和智能化。2.政策引导与新技术推动国家政策如《建筑业信息化发展纲要》和雄安新区管理办法强调了BIM和CIM技术......
  • 生鲜商城购物系统解决方案毕设毕业设计.web期末作业设计网页.css网页成品参考
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、P......
  • 51单片机学习记录-12-直流电机(PWM脉冲宽度调制)
    1直流电机介绍直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转直流电机主要由永磁体(定子)、线圈(转子)和换向器组成除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等2电机驱动电路(1)大功率器......
  • LookupError: Resource averaged_perceptron_tagger not found.解决方案
      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学......
  • Windows11恢复经典的右键菜单:一条命令解决显示更多选项问题
      https://zhuanlan.zhihu.com/p/706293496修改注册表。需要以管理员身份运行CMD或者Powershell后,输入如下的命令添加一个注册表信息即可:regadd"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32"/f/ve运行完之后需要重启系统......
  • 安装git-format-staged后,Sourcetree中提交代码报错的解决方案
    pre-commit文件中内容为:git-format-staged--formatter"swiftformatstdin--stdinpath'{}'""*.swift" 在终端中,gitcommit不会报错。Sourcetree中提交具体错误:git-format-staged或者swiftformat命令找不到。解决方案一:利用Automator(自动操作)新建一个SourceTree应......