1. 安装rabbitmq,查看官网文档: https://www.rabbitmq.com/#getstarted

  由于我是先安装了rabbitmq后自己随手创建了queue,后面又按照官方给的"hello world"例子去测试,结果发生了“406, "PRECONDITION_FAILED - inequivalent arg 'durable'” 这个错误信息。

  1. 先在管理页面创建的queue

  

2. 创建的exchanges

  

上图中红线的 durable 是指是否持久化,可以看到我创建时设置的为true。

  3. 官方的hello world 例子:

官网文档地址:https://www.rabbitmq.com/tutorials/tutorial-one-python.html

  代码(python版本):

   (生产者)

  (消费者)

但是当我运行上面的代码时,却报错:

  

错误信息翻译过来大致意思就是:当前的queue的durable属性是true,但是我们声明queue时过去的参数确实是false.

 这个错误造成的原因是现在页面创建了queue和exchanges,但是代码中声明要使用的queue时,durable属性传递的是false.

 ok,那么代码怎么搞了? 可以从pyhton错误信息的中的堆栈部分找到返回错误的文件:File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pika/adapters/blocking_connection.py"

那么找到这个文件,看看源码是什么情况:

  

可以看出来,这个函数里默认durable为false,那么我们将自己的代码改造一下,设置durable为true.

  

执行结果:

  

可以看到是成功了的。

要注意的是,生产者和消费者对queue的声明函数里,这个durable必须保持一致。

最新文章

  1. MYsql 数据库密码忘记(Window)
  2. 新特性AAtitti css3 新特性attilax总结titti css
  3. orace 取昨天凌晨的日期
  4. 验证一个字符串是否由数字组成(Java)
  5. I/O扩展篇(基于74HC164/74HC165)
  6. kali Linux Web 渗透测试视频教程— 第六课 网络扫描-nmap与zmap
  7. [Node.js] Broswerify -- 1
  8. JS利用正则配合replace替换指定字符
  9. Linux 模拟 鼠标 键盘 事件
  10. Java简介(4)-关键字
  11. MySQL数据库Raid存储方案
  12. 【编程语言】Kotlin之object关键字
  13. 机器学习之SVD分解
  14. Mysql系列五:数据库分库分表中间件mycat的安装和mycat配置详解
  15. php7 AES IOS Android
  16. Vim配置(转)
  17. Linux下Oracle 10g DataGuard配置(主从同步及切换)
  18. 前端开发工程师 - 05.产品前端架构 - 协作流程 & 接口设计 & 版本管理 & 技术选型 &开发实践
  19. Android Screen Monitor
  20. 二、Django需要的知识点

热门文章

  1. K8S集群入门:运行一个应用程序究竟需要多少集群?
  2. 挂号平台首页开发(UI组件部分)
  3. MySQL 什么是事务?
  4. SDRAM的引脚封装标准
  5. Dijkstra算法 1
  6. HTML块级、行级元素,特殊字符,嵌套规则
  7. JS事件绑定的三种方式比较
  8. 通过sql的stuff 把一列几行的记录拼接在一行一个字段
  9. mysql查询时不区分大小写
  10. ArcGIS Engine开发碰到问题及解决方式