pika详解(四) channel 通道
channel通道
通道是在connection建立后进行创建分配的,有利于connection重用
官方建议通过connection的channel() 方法进行创建
方法/参数:
add_callback(callback, replies, one_shot=True)
从 RabbitMQ broker 收到消息,在回复列表中,则调用回调函数,为replies列表添加回调函数
参数:
callback (callable)
– 回调函数
replies (list)
–callback 回调列表
one_shot (bool)
– 只处理第一种类型的回调add_on_cancel_callback(callback)
服务器发送basic_cancel时调用的回调函数
add_on_close_callback(callback)
通道关闭时调用的回调函数
add_on_flow_callback(callback)
远程服务器调用Channel.Flow时调用的回调函数
add_on_return_callback(callback)
basic_publish发送一条已被服务器拒绝并返回的消息时调用
basic_ack(delivery_tag=0, multiple=False)
参数:delivery_tag
(整数) – 服务器分配的传递标记multiple
布尔值, 是否允许确认多条basic_cancel(consumer_tag='', callback=None)
取消一个consumer, 不影响delivered 已经发送的消息,但这意味着rabbitmq broker不再向该consumer发送消息
consumer_tag
消费者的标识符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.basic_get(queue, callback, auto_ack=False)
获取单条消息
参数:
queue (str)
– 队列名称
callback (callable)
–回调函数, 回调定义callback(channel, method, properties, body),
auto_ack (bool)
– 自动消息确认basic_nack(delivery_tag=None, multiple=False, requeue=True)
允许客户端拒绝一个或多个传入消息。它可用于中断和取消大量传入消息,或将无法处理的消息返回到其原始队列
参数:
delivery-tag (integer)
– int/long 服务器分配的 delivery id
multiple (bool)
–是否允许多条
requeue (bool)
– 如果requeue为true,服务器将尝试重新排队该消息。如果requeue为false或重新排队尝试失败,则丢弃或删除消息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会直接将消息丢弃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是否适用于频道上的所有消费者callback
(callable) - 调用Basic.QosOk响应的回调
basic_reject(delivery_tag, requeue=True)
拒绝传入的消息。此方法允许客户端拒绝消息。它可用于中断和取消大量传入消息,或将无法处理的消息返回到其原始队列参数:
delivery-tag (integer)
– 分配的tag
requeue (bool)
–如果requeue为true,服务器将尝试重新排队该消息。如果requeue为false或重新排队尝试失败,则丢弃或删除消息basic_recover(requeue=False, callback=None)
要求服务器重新传送指定通道上的所有未确认消息,可以重新传递零个或多个消息
close(reply_code=0, reply_text='Normal shutdown')
关闭
confirm_delivery(ack_nack_callback, callback=None)
开启通道 中的确认模式, 当consumer接收或者拒绝消息的时候会调用
consumer_tags
返回当前活动使用者列表的属性方法
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)
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)
exchange_delete(exchange=None, if_unused=False, callback=None)
删除交换机
参数:
exchange (str)
– 交换机删除
if_unused (bool)
– 在没有使用时删除
callback (callable)
–Exchange.DeleteOk 消息的回调exchange_unbind(destination=None, source=None, routing_key='', arguments=None, callback=None)
取消与另一个交换机的绑定
参数:
destination
- 取消绑定的目标交换source
- 取消绑定的源交换routing_key
- 解除绑定的路由键arguments
- 绑定的自定义键/值对参数callback
(callable) - 方法Exchange.UnbindOk的回调(pika.frame.Method)
flow(active, callback=None)
关闭和打开通道流量控制
参数:
active (bool)
– Turn flow on or off
callback (callable)
– callback(bool) upon completion
is_closed
is_closing
is_open
open()
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)
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)
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)
queue_purge(queue, callback=None)
清除队列的所有消息
queue (str)
–队列名称
callback (callable)
– 方法Queue.PurgeOk的回调(pika.frame.Method)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)tx_rollback(callback=None)
tx_select(callback=None)
tx_rollback(callback = None)
pika详解(四) channel 通道相关推荐
- linux 进程间通信 dbus-glib【实例】详解四(上) C库 dbus-glib 使用(附代码)(编写接口描述文件.xml,dbus-binding-tool工具生成绑定文件)(列集散集函数)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- Android Studio 插件开发详解四:填坑
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...
- springboot 详解 (四)redis filter
---------------------------------------------------------------------------------------------------- ...
- 数据结构--图(Graph)详解(四)
数据结构–图(Graph)详解(四) 文章目录 数据结构--图(Graph)详解(四) 一.图中几个NB的算法 1.普里姆算法(Prim算法)求最小生成树 2.克鲁斯卡尔算法(Kruskal算法)求最 ...
- .NET DLL 保护措施详解(四)各操作系统运行情况
我准备了WEB应用程序及WinForm应用程序,分别在WIN SERVER 2012/2008/2003.Win7/10上实测,以下为实测结果截图: 2012 2008 2003 WIN7 WIN10 ...
- mybatis 鉴别其_MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询
MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询 白玉 IT哈哈 支持的 JDBC 类型 为了未来的参考,MyBatis 通过包含的 jdbcType 枚举型,支持下面的 ...
- App Widgets 详解四 RemoteViews、RemoteViewsService和RemoteViewsFactory
导读 本篇文章将介绍"集合视图",App Widget 复杂布局的实现 App Widget 小部件系列其他文章链接 App Widgets 详解一 简单使用 App Widget ...
- java实现标准化考试系统详解(四)-----初始化操作实现
(一)初始化操作实现 如上图所示当管理员需要更改适用工程.试题数量.考试时间时直接在文本中更改就好我们只需要每次在用户打开程序时初始化这些参数就可以 1.初始化试题模型,这里需要实现随机抽题,方法是用 ...
- Linux字符设备驱动详解四(使用自属的xbus驱动总线)
文章目录 系列文章目录 前言 驱动目录 正文 驱动总线 总线管理 总线注册 设备注册 驱动注册 代码示例 总结 系列文章目录 Linux字符设备驱动详解 Linux字符设备驱动详解二(使用设备驱动模型 ...
- P2P技术详解(四):P2P技术之STUN、TURN、ICE详解
目录 1.内容概述 2.STUN详解 2.1 RFC3489/STUN 2.1.1 报文结构 2.1.2实现原理 2.1.3STUN功能举例 2.2 RFC5389/STUN 2.2.1STUN用途 ...
最新文章
- 优秀的Java程序员应具备哪些编程技术?
- 第三话 开关说它不认识“2”
- sync - 清空文件系统缓冲区
- 海马体what where记忆推理模型
- 推荐专栏丨《DBA的奋斗路》
- PageAdmin建站系统模板制作教程1:Razor简介
- 轻松四步配置Oracle数据库监听
- Kafka到Hdfs的数据Pipeline整理
- php助理工作内容,生产助理的工作职责
- 转座子可抑制mRNA翻译
- 修改webbrower中浏览器版本
- CSS3之position:sticky使用
- STM32+Zigbee的使用
- arm oe linux gnueabi 系统,OpenCV ARM移植(交叉编译opencv) arm-oe-linux-gnueabi-gcc编译opencv3.1.0...
- 卸载WPS后怎么WORD的图标还是WPS
- linux 配置 Apache mysql php最新版
- 蚂蚁森林合种三周年6000+证书
- 服务器如何安装windows7系统,安装Windows 7系统
- 装饰模式:换装系统设计
- 杜洋PCB设计视频教程笔记(陆续更新)
热门文章
- php datedif,Datedif函数全面解析及BUG分析
- 计算机语言变成乱码怎么办,电脑文本文档出现乱码,教你电脑文本文档出现乱码怎么办...
- 3种方法解决txt文档乱码
- 魔百盒CM201-2-YS代工-刷机固件及教程
- apk编辑器android源码,apk编辑器电脑版_apk编辑器电脑版下载[apk编译]- 下载之家
- Tableau插入自定义图片
- 【VBox】解决复制VBox虚拟机后提示硬盘UUID 已经存在的问题
- 深入理解:面向服务与微服务架构
- ubuntu下使用vscode阅读内核源码或uboot源码使用技巧——search.excludefiles.exclude
- 【linux】正点原子linux教程学习