pika详解(四) channel 通道
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')
关闭
- 1
confirm_delivery(ack_nack_callback, callback=None)
开启通道 中的确认模式, 当consumer接收或者拒绝消息的时候会调用
- 1
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_closedis_closingis_openopen()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 通道的更多相关文章
- pika详解(五)登录认证及connectionParameters
pika详解(五)登录认证及connectionParameters 本文链接:https://blog.csdn.net/comprel/article/details/94662916 版权 pi ...
- pika详解(三)SelectConnection及其他Connection
pika详解(三)SelectConnection及其他Connection 本文链接:https://blog.csdn.net/comprel/article/details/94661147 ...
- pika详解(二) BlockingConnection
pika详解(二) BlockingConnection 本文链接:https://blog.csdn.net/comprel/article/details/94592348 版权 Blocki ...
- pika详解 (一)
pika详解 (一) 本文链接:https://blog.csdn.net/comprel/article/details/94592316 pika pika处理消息可以简单分为以下几个步骤: 我们 ...
- .NET DLL 保护措施详解(四)各操作系统运行情况
我准备了WEB应用程序及WinForm应用程序,分别在WIN SERVER 2012/2008/2003.Win7/10上实测,以下为实测结果截图: 2012 2008 2003 WIN7 WIN10 ...
- logback -- 配置详解 -- 四 -- <filter>
附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...
- View绘制详解(四),谝一谝layout过程
上篇博客我们介绍了View的测量过程,这只是View显示过程的第一步,第二步就是layout了,这个我们一般译作布局,其实就是在View测量完成之后根据View的大小,将其一个一个摆放在ViewGro ...
- C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)
前面三篇文章<C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)>.<C++11 并发指南六( <atomic> 类型详解二 std::at ...
- Android Studio 插件开发详解四:填坑
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 在前面我介绍了插件开发的基本流程 [And ...
随机推荐
- 【新手指南】Android Studio中应用App的相关配置
前言: 注意这是一个对于Android开发入门学习者而言的一个教程,因为自己平时很少使用Android进行原生应用的开发,对于使用Android Studio配置Android App应用的一些参数( ...
- 脱壳——修复加密IAT
脱壳--修复加密IAT 对两个练手程序进行脱壳修复加密IAT(其实是一个程序,只是用了几种不同的加壳方式) 第一个程序 Aspack.exe 下载链接:https://download.csdn.ne ...
- 【Scrapy(二)】Scrapy 中的 Pipline,Item,Shell组件
Pipline: 1.爬虫项目与爬虫的区别与关联: 一个爬虫项目可以包含多个爬虫,如下图中爬虫项目firstspider 包含多个爬虫itcst 和爬虫itcast1 2.多个爬虫是公用一套Pipli ...
- hdu4604 不错的子序列问题
题意: 给你一个栈,里面有n个数,和一个双头队列(空的),每次从栈里拿出一个数据,有三种选择,可以选择丢弃这个数字,也可以放到队头或者队尾,最后问你这个队列你面的最长连续非下降序列的长度. ...
- Django中的表单
目录 表单 Django中的表单 用表单验证数据 自定义验证 表单 HTML中的表单是用来提交数据给服务器的,不管后台服务器用的是 Django 还是 PHP还是JSP还是其他语言.只要把 inpu ...
- JEET W1S运动蓝牙耳机简评
对于我这种喜欢运动的人来说,很早之前就一直想买个运动蓝牙耳机了.这次正好有此机会可以评测来自JEET的W1S运动蓝牙耳机,真的是非常的幸运! 终于,在期盼中,我的来自深圳的快递隔了四天终于到了!JEE ...
- java之Map和Collection
java中保存对象的容器可分为两类: 1.Map.Map是以键值对的形式来保存一组对象,可以通过键来查找值. 2.Collection.用来保存独立对象的序列.Collection又可分为三种类型: ...
- MySQL字段类型最全解析
前言: 要了解一个数据库,我们必须了解其支持的数据类型.MySQL 支持大量的字段类型,其中常用的也有很多.前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类型,本篇 ...
- 各大搜索引擎 User-Agent
百度PC User-Agent Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider ...
- I/O流以及文件的基本操作
文件操作: 文件操作其实就是一个FIle类:我们学习文件操作就是学习File类中的方法: 文件基操: 第一部分:学习文件的基本操作(先扒源码以及文档) Constructor Description ...