pika详解(四) channel 通道

channel通道

通道是在connection建立后进行创建分配的,有利于connection重用

官方建议通过connection的channel() 方法进行创建

方法/参数:

  1. add_callback(callback, replies, one_shot=True)

    从 RabbitMQ broker 收到消息,在回复列表中,则调用回调函数,为replies列表添加回调函数

    参数:
    callback (callable)– 回调函数
    replies (list) –callback 回调列表
    one_shot (bool) – 只处理第一种类型的回调

  2. add_on_cancel_callback(callback)

    服务器发送basic_cancel时调用的回调函数

  3. add_on_close_callback(callback)

    通道关闭时调用的回调函数

  4. add_on_flow_callback(callback)

    远程服务器调用Channel.Flow时调用的回调函数

  5. add_on_return_callback(callback)

    basic_publish发送一条已被服务器拒绝并返回的消息时调用

  6. basic_ack(delivery_tag=0, multiple=False)
    参数:

    delivery_tag (整数) – 服务器分配的传递标记

    multiple 布尔值, 是否允许确认多条

  7. basic_cancel(consumer_tag='', callback=None)

    取消一个consumer, 不影响delivered 已经发送的消息,但这意味着rabbitmq broker不再向该consumer发送消息

    consumer_tag 消费者的标识符

  8. basic_consume(queue, on_message_callback, auto_ack=False, exclusive=False, consumer_tag=None, arguments=None, callback=None)
    参数:
    queue (str) – 队列名称
    on_message_callback (callable) –回调函数, 回调的定义on_message_callback(channel, method, properties, body)
    auto_ack (bool)–是否自动确认, 默认不自动确认消息
    exclusive (bool)– 排他队列, 是否允许在队列中允许还有其他的consumer消费者
    consumer_tag (str)– consumer的标志符
    arguments (dict) – 消费者的自定义键/值对参数
    callback (callable)– callback(pika.frame.Method) for method Basic.ConsumeOk.

  9. basic_get(queue, callback, auto_ack=False)

    获取单条消息

    参数:
    queue (str)– 队列名称
    callback (callable)–回调函数, 回调定义callback(channel, method, properties, body),
    auto_ack (bool)– 自动消息确认

  10. basic_nack(delivery_tag=None, multiple=False, requeue=True)

    允许客户端拒绝一个或多个传入消息。它可用于中断和取消大量传入消息,或将无法处理的消息返回到其原始队列

    参数:
    delivery-tag (integer) – int/long 服务器分配的 delivery id
    multiple (bool) –是否允许多条
    requeue (bool) – 如果requeue为true,服务器将尝试重新排队该消息。如果requeue为false或重新排队尝试失败,则丢弃或删除消息

  11. basic_publish(exchange, routing_key, body, properties=None, mandatory=False)

    发送消息

    参数:

    exchange (str)– 交换机名称
    routing_key (str) – 路由键, 与交换机类型有关, topic 可以使用匹配规则, direct 则需要指定准确的路由键, 否则消息会被丢弃,或者返回给consumer, fanout则可以使用空字符"", 广播到交换机下的队列
    body (bytes) – 消息内容
    properties (pika.spec.BasicProperties) – Basic.properties 消息属性
    mandatory (bool) – 强制性标志, 设置broker对于没有投递成功消息的处理机制:

    如果exchange根据自身类型和消息routingKey无法找到一个合适的queue存储消息,
    那么broker会调用basic.return方法将消息返还给生产者;当mandatory设置为false时,
    出现上述情况broker会直接将消息丢弃

  12. basic_qos(prefetch_size=0, prefetch_count=0, global_qos=False, callback=None)

参数:

  • prefetch_size - 该字段指定预取窗口大小。如果服务器的大小等于或小于可用的预取大小(并且也属于其他预取限制),则它将提前发送消息。可以设置为零,意味着“没有特定限制”,尽管其他预取限制可能仍然适用。启用no-ack选项的使用者将忽略prefetch-size。

  • prefetch_count- 根据整个消息指定预取窗口。该字段可以与预取大小字段结合使用; 如果预取窗口(以及通道和连接级别的窗口)都允许,则只会提前发送消息。启用no-ack选项的使用者将忽略prefetch-count。

  • global_qos - QoS是否适用于频道上的所有消费者

  • callbackcallable) - 调用Basic.QosOk响应的回调

  1. basic_reject(delivery_tag, requeue=True)

    拒绝传入的消息。此方法允许客户端拒绝消息。它可用于中断和取消大量传入消息,或将无法处理的消息返回到其原始队列参数:
    delivery-tag (integer)– 分配的tag
    requeue (bool)–如果requeue为true,服务器将尝试重新排队该消息。如果requeue为false或重新排队尝试失败,则丢弃或删除消息

  2. basic_recover(requeue=False, callback=None)

    要求服务器重新传送指定通道上的所有未确认消息,可以重新传递零个或多个消息

  3. close(reply_code=0, reply_text='Normal shutdown')

关闭
 
  • 1
  1. confirm_delivery(ack_nack_callback, callback=None)
开启通道 中的确认模式, 当consumer接收或者拒绝消息的时候会调用
 
  • 1
  1. consumer_tags

    返回当前活动使用者列表的属性方法

  2. exchange_bind(destination, source, routing_key='', arguments=None, callback=None)

交换机绑定, 将一个交换机绑定到另外一个交换机

参数:

`destination`(str) - 要绑定的目标交换
`source(str)` - 要绑定的源交换
`routing_key`(str) - 要绑定的路由键
`arguments`(dict) - 绑定的自定义键/值对参数
`callback`(callable) - 方法Exchange.BindOk的回调(pika.frame.Method)
 
  1. exchange_declare(exchange, exchange_type='direct', passive=False, durable=False, auto_delete=False, internal=False, arguments=None, callback=None)

声明交换机

参数:
exchange(str) – 交换机名称
exchange_type (str) – 交换机类型, 一般使用topic(主题交换机), direct, fanout(广播交换机)
passive (bool) – 执行检察或者只是检察是否存在, 默认为false, 即是,如果不存在则会创建交换机
durable (bool) – 是否持久化,决定了在rabbitmq重启后该交换机是否存在
auto_delete (bool) –自动删除
internal (bool)– 内部,只能由其他exchanges进行发布
arguments (dict)– 交换的自定义键/值对参数
callback (callable)– 方法Exchange.DeclareOk的回调(pika.frame.Method)

  1. exchange_delete(exchange=None, if_unused=False, callback=None)

    删除交换机

    参数:
    exchange (str) – 交换机删除
    if_unused (bool) – 在没有使用时删除
    callback (callable)–Exchange.DeleteOk 消息的回调

  2. exchange_unbind(destination=None, source=None, routing_key='', arguments=None, callback=None)

取消与另一个交换机的绑定

参数:

  • destination - 取消绑定的目标交换
  • source - 取消绑定的源交换
  • routing_key - 解除绑定的路由键
  • arguments - 绑定的自定义键/值对参数
  • callbackcallable) - 方法Exchange.UnbindOk的回调(pika.frame.Method)
  1. flow(active, callback=None)

关闭和打开通道流量控制

参数:
active (bool)– Turn flow on or off
callback (callable)– callback(bool) upon completion

  1. is_closed
  2. is_closing
  3. is_open
  4. open()
  5. queue_bind(queue, exchange, routing_key=None, arguments=None, callback=None)

将队列绑定到交换机

参数:
queue(str) - 绑定到交换的队列
exchange(str) - 要绑定的源交换
routing_key(str) - 要绑定的路由键
arguments(dict) - 绑定的自定义键/值对参数
callback(callable) - 方法Queue.BindOk的回调(pika.frame.Method)

  1. queue_declare(queue, passive=False, durable=False, exclusive=False, auto_delete=False, arguments=None, callback=None)
声明队列

参数:
`queue (str)` – 队列名称
`passive (bool) `– 只检察队列是否存在,默认false
`durable (bool)` – 是否持久化队列,以便在重启rabbitmq时候队列能够恢复
`exclusive (bool)` – 排他队列,只允许在该连接connection中使用
`auto_delete (bool) `– 断开连接时候是否自动删除
`arguments (dict) `– 队列的自定义键/值参数
`callback (callable)` – 方法Queue.DeclareOk的回调(pika.frame.Method)
 
  1. queue_delete(queue, if_unused=False, if_empty=False, callback=None)
删除队列

参数:
`queue (str)` – 队列名称
`if_unused (bool)` – 未使用才删除
`if_empty (bool)` – 是否是空的时候才删除
`callback (callable)` –方法Queue.DeleteOk的回调(pika.frame.Method)
 
  1. queue_purge(queue, callback=None)

    清除队列的所有消息

    queue (str) –队列名称
    callback (callable) – 方法Queue.PurgeOk的回调(pika.frame.Method)

  2. queue_unbind(queue, exchange=None, routing_key=None, arguments=None, callback=None)

    解除队列绑定

    queue (str)– 队列名称
    exchange (str) – 交换机名称
    routing_key (str) – 路由键
    arguments (dict)– 绑定的自定义键/值对参数
    callback (callable) – 方法Queue.UnbindOk的回调(pika.frame.Method)

  3. tx_rollback(callback=None)

  4. tx_select(callback=None)

  5. tx_rollback(callback = None)

 

pika详解(四) channel 通道的更多相关文章

  1. pika详解(五)登录认证及connectionParameters

    pika详解(五)登录认证及connectionParameters 本文链接:https://blog.csdn.net/comprel/article/details/94662916 版权 pi ...

  2. pika详解(三)SelectConnection及其他Connection

    pika详解(三)SelectConnection及其他Connection   本文链接:https://blog.csdn.net/comprel/article/details/94661147 ...

  3. pika详解(二) BlockingConnection

    pika详解(二) BlockingConnection   本文链接:https://blog.csdn.net/comprel/article/details/94592348 版权 Blocki ...

  4. pika详解 (一)

    pika详解 (一) 本文链接:https://blog.csdn.net/comprel/article/details/94592316 pika pika处理消息可以简单分为以下几个步骤: 我们 ...

  5. .NET DLL 保护措施详解(四)各操作系统运行情况

    我准备了WEB应用程序及WinForm应用程序,分别在WIN SERVER 2012/2008/2003.Win7/10上实测,以下为实测结果截图: 2012 2008 2003 WIN7 WIN10 ...

  6. logback -- 配置详解 -- 四 -- <filter>

    附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...

  7. View绘制详解(四),谝一谝layout过程

    上篇博客我们介绍了View的测量过程,这只是View显示过程的第一步,第二步就是layout了,这个我们一般译作布局,其实就是在View测量完成之后根据View的大小,将其一个一个摆放在ViewGro ...

  8. C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)

    前面三篇文章<C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)>.<C++11 并发指南六( <atomic> 类型详解二 std::at ...

  9. Android Studio 插件开发详解四:填坑

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 在前面我介绍了插件开发的基本流程 [And ...

随机推荐

  1. 深入了解Zookeeper核心原理

    之前的文章Zookeeper基础原理&应用场景详解中将Zookeeper的基本原理及其应用场景做了一个详细的介绍,虽然介绍了其底层的存储原理.如何使用Zookeeper来实现分布式锁.但是我认 ...

  2. Python 3.10 中新的功能和变化

    随着最后一个alpha版发布,Python 3.10 的功能更改全面敲定! 现在,正是体验Python 3.10 新功能的理想时间!正如标题所言,本文将给大家分享Python 3.10中所有重要的功能 ...

  3. 077 Kuchiguse

    The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...

  4. 1003 Emergency (25分)

    As an emergency rescue team leader of a city, you are given a special map of your country. The map s ...

  5. 通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权

    Oauth2授权,熟悉微信开发的同学对这个东西应该不陌生吧.当我们的应用系统需要集成第三方授权时一般都会做oauth集成,今天就来看看在Dapr的语境下我们如何仅通过配置无需修改应用程序的方式让第三方 ...

  6. mac系统 PHP Nginx环境变量修改

    场景:php默认的环境变量不是我们实际工作中想要的 执行命令:which php 查看默认的php指向的目录 :  /usr/bin/php 修改· ~/.bash_profile 文件 添加php环 ...

  7. 5.PHP与Web页面交互

    PHP与Web页面交互 PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递. 表单提交用户名字和密码: <form name "form ...

  8. 15.PHP_PHP与Ajax

    PHP与Ajax 刚刚下班回来地铁上看的这一章,觉得这东西思路可以.确实解决了WEB的两个大的问题,流量和计算量问题.简单说下我的理解,然后在根据资料整理下学习笔记. 两个问题: 1.展示一个WEB网 ...

  9. (CV学习笔记)看图说话(Image Captioning)-2

    实现load_img_as_np_array def load_img_as_np_array(path, target_size): """从给定文件[加载]图像,[缩 ...

  10. 初探 Git Submodules

    之前一直想将一个 Git 仓库放到另一个 Git 仓库,有 Maven 多模块项目(Maven Multimodule Project)和 Gradle 多项目构建(Gradle Multiproje ...