版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26656329/article/details/77891793
说明
官方文档
在创建queue时可以指定很多参数,可以限制队列的大小、消息的死信时间、优先级等等。

queue消息条数限制
x-max-length
该参数是非负整数值
官方文档
限制加入queue中消息的条数。先进先出原则,超过10条后面的消息会顶替前面的消息。

credentials = pika.PlainCredentials(username='mq', password='654321')
connection = pika.BlockingConnection(
pika.ConnectionParameters(
host='localhost', port=5672, virtual_host='/',
credentials=credentials
)
)
channel = connection.channel()
channel.exchange_declare(exchange='tests', durable=True)
channel.queue_declare(queue='test', durable=True, arguments={'x-max-length': 10}) # 队列中最多10条消息
1
2
3
4
5
6
7
8
9
10
queue消息容量限制
x-max-length-bytes
该参数是非负整数值
官方文档
该参数和x-max-length目的一样限制队列的容量,但是这个是靠队列大小(bytes)来达到限制。

queue消息存活时间
x-message-ttl
该参数是非负整数值
官方文档
创建queue时设置该参数可指定消息在该queue中待多久,可根据x-dead-letter-routing-key和x-dead-letter-exchange生成可延迟的死信队列。

channel.queue_declare(
queue='test',
durable=True,
arguments={'x-message-ttl': 60000} # 消息的存活时间是60秒
)
1
2
3
4
5
死信队列
x-dead-letter-routing-key
x-dead-letter-exchange
官方文档
创建queue时参数arguments设置了x-dead-letter-routing-key和x-dead-letter-exchange,会在x-message-ttl时间到期后把消息放到x-dead-letter-routing-key和x-dead-letter-exchange指定的队列中达到延迟队列的目的。

arguments = {
'x-message-ttl': 10000, # 延迟时间 (毫秒)
'x-dead-letter-exchange': exchange, # 延迟结束后指向交换机(死信收容交换机)
'x-dead-letter-routing-key': queue, # 延迟结束后指向队列(死信收容队列),可直接设置queue name也可以设置routing-key
}
channel.queue_declare(
queue='test',
durable=True,
arguments=arguments
)
1
2
3
4
5
6
7
8
9
10
queue存活时间
x-expires
官方文档
创建queue时参数arguments设置了x-expires参数,该queue会在x-expires到期后queue消息,亲身测试直接消失(哪怕里面有未消费的消息)。

channel.queue_declare(
queue='testss',
durable=True,
arguments={'x-expires': 6000} # 队列的存活时间是6秒
)
1
2
3
4
5
消息优先级
x-max-priority
官方文档
版本限制3.5+
创建queue时arguments可以使用x-max-priority参数声明优先级队列 。该参数应该是一个整数,表示队列应该支持的最大优先级。
​​建议使用1到10之间。目前使用更多的优先级将消耗更多的资源(Erlang进程)。
设置该参数同时设置死信队列时或造成已过期的低优先级消息会在未过期的高优先级消息后面执行。
该参数会造成额外的CPU消耗。

channel.queue_declare(queue='test', durable=True, arguments={'x-max-priority': 10})
1
合理利用参数达到实现的目的。
---------------------
作者:偶爱喝可乐
来源:CSDN
原文:https://blog.csdn.net/qq_26656329/article/details/77891793?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

rabbitmq queue_declare arguments参数注释的更多相关文章

  1. JS中的for/in语句和arguments参数

    在js应用中,有时候我们会遇到希望定义一个函数可以被不同情况调用,比如参数个数不固定的情况. 可以使用for/in语句和arguments参数解决. 举个简单例子:定义一个计算总和的函数,需要计算的数 ...

  2. 让Jayrock插上翅膀(加入输入输出参数注释,测试页面有注释,下拉框可以搜索)

    继上一篇文章介绍了Jayrock组件开发接口的具体步骤和优缺点之后,今天给大家带来的就是,如何修复这些缺点. 首先来回顾一下修复的缺点有哪些: 1.每个接口的只能写大概的注释,不能分开来写,如接口的主 ...

  3. 《无所不能的JavaScript编程系列:arguments 参数对象》

    前言:无所不能的JavaScript JavaScript起源于Netscape公司的LiveScript语言,这是一种基于对象和事件驱动的客户端脚本语言,最初的设计是为了检验HTML表单输入的正确性 ...

  4. linux内核参数注释与优化

    目录 1.linux内核参数注释 2.两种修改内核参数方法 3.内核优化参数生产配置 参数解释由网络上收集整理,常用优化参数对比了网上多个实际应用进行表格化整理,使查看更直观. 学习linux也有不少 ...

  5. Linux网卡配置文件参数注释

    Linux网卡配置文件参数注释 作者:Eric 微信:loveoracle11g [root@linux-node2 ~]# cat /etc/sysconfig/network-scripts/if ...

  6. arguments 参数

    下面要写的是知识梳理的一个案例: 写一个求和的方法sumFn,不管传递的参数有什么,都能将最终的和算出来,并且返回给函数外部使用.(要求:一个参数都不传默认结果为0,对于传递的非正常数字的参数不与累加 ...

  7. (转)linux内核参数注释与优化

    linux内核参数注释与优化 原文:http://blog.51cto.com/yangrong/1321594 http://oldboy.blog.51.cto.com/2561410/13364 ...

  8. python 语法-参数注释

    python 语法-参数注释 最近碰到的这样的代码: def func(a:"shuoming") -> int: print("函数已运行.") fun ...

  9. IDEA自定义类注释和方法注释(自定义groovyScript方法实现多行参数注释)

    一.类注释 1.打开设置面板:file -> setting -> Editor -> file and code Templates 选择其中的inclues选项卡,并选择File ...

随机推荐

  1. 高通 fastboot 显示

    需要在fastboot里面添加功能用于保存,记录一下fastboot显示的过程. android O新添加了选项,如下 platform/msm_shared/rules.mk ifeq ($(ENA ...

  2. 如何在Web.config中注册用户控件和自定义控件

    问题: 在ASP.NET 的早先版本里,开发人员通过在页面的顶部添加 指令来引入和使用自定义服务器控件和用户控件时,象这样: <%@ Register TagPrefix="scott ...

  3. Apache TomEE 入门指南

    介绍 Apache TomEE(发音同“tommy”)是一个新的JavaEE服务器,由Apache软件基金会开发,你大概能够从它的名字猜到,它是从Tomcat而来, 同时加入的JavaEE的特征:To ...

  4. PHP上传压缩包并自解压方法

    1.PHP上传压缩包并解压的大概流程: 普通上传功能->上传到服务器->加载系统组件->找到上传的文件并执行解压命令->成功解压到目录 2.php执行系统命令的几类函数: (1 ...

  5. git恢复本地删除的文件夹取消增加的文件

    git项目中有时候会在本地增加或者删除了一些文件或者文件夹,但是又不想提交,一般情况下,我们取消本地所有修改: git checkout . 取消指定文件修改: git checkout filena ...

  6. Vue.js 2.0 学习重点记录

      Vue.js兼容性 Vue.js.js 不支持 IE8 及其以下版本,因为 Vue.js.js 使用了 IE8 不能模拟的 ECMAScript 5 特性. Vue.js.js 支持所有兼容 EC ...

  7. 17 HTTP编程入门

    http请求原理 http请求原理我就不多说了,网上一搜就能搜索到,下面我注意是记录下http模块的使用方法 http 模块 HTTP-server hello world 我们使用HandleFun ...

  8. Centos修改时间显示的时区,将UTC修改为CST

    问题说明: 今天一同事反应,系统的时间不对和正常的时间差8个小时.就登录主机看了下时间 系统时间显示为: # date Fri Dec :: UTC # 备注:查看了下,正好和当前的时间差了8个小时. ...

  9. anaconda-ks.cfg详解

    https://blog.csdn.net/whyhonest/article/details/7555229

  10. 单例模式__new__

    单例模式,使用__new__ __new__是构造函数, __init__是初始化方法,先调用了__new__返回了实例,__init__给这个实例初始化绑定一些属性. class Singleton ...