RabbitMQ之队列属性

前言

这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题

于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。

微信小程序搜索:Python面试宝典

或可关注原创个人博客:https://lienze.tech

也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习

队列属性

队列除了基本的获取与消息发布外,还有如下属性

  • Name: 队列名称
  • Durable: 持久化
  • Exclusive: 只能被一个连接使用,连接关闭,队列删除(设置了持久化也没用)
  • Auto-delete: 无消费者,或最后一消费者退订则队列删除
  • Arguments: 添加如headersttl等属性值对队列进行额外属性维护

队列创建

队列创建也相当于队列声明declare,如果一个队列不存在,那么声明declare他则会创建

如果一次声明与历史创建好的队列属性完全相同,那么不必担心,这不会覆盖,这次声明对历史队列不会产生任何影响

如果声明队列名相同,但属性不同,此时将出现错误码406通道级异常

def queue_declare(
    self,
    queue, 
    passive=False,
    durable=False,
    exclusive=False,
    auto_delete=False,
    arguments=None
)
"""
queue: 设置队列名字,默认为空,将自动创建一个名字
passive: 检查一下队列是否存在,如果该参数为True,只判断队列存在否,不会声明队列;存在返回队列状态
durable: 设置持久化
exclusive: 设置排他
auto_delete: 当最后一个消费者退订后自动删除,默认不开启
arguments: 用于传递队列额外的参数,如headers匹配等
"""

队列持久化

非常简单,队列声明durable属性即可

channel.queue_declare(
   ..., durable=True # 持久化
)

排他队列

如果希望当前队列之可以被当前信道使用,那么可以声明exclusive属性即可

channel.queue_declare(
    queue="queue1",
    exclusive=True,
)

注意,当退出当前信道channle.cancel时,排他队列将会删除,避免之后其他代码还会继续使用

队列长度

通过队列属性x-max-length设置

channel.queue_declare(
    queue="dlx_queue",
    arguments={
        'x-max-length': 10,
    }) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李恩泽的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值