连接队列
队列的连接有两种方法,一种是通过ConnectionParameters
定义连接参数,一种是通过URLParameters
定义连接URL串。
使用URL串来连接消息队列是最简单的创建连接的方法,类URLParameters
在构建的时候接收一个URL字符串作为参数。AMQP的连接串格式为amqp://用户名:密码@主机:端口/<虚拟主机>[?查询串]
,默认的虚拟主机/
在连接时应使用%2F
代替。
而使用ConnectionParameters
定义连接参数就明确许多。类ConnectionParameters
可以接收以下常用参数。
blocked_connection_timeout
,阻塞连接超时时间。channel_max
,最大允许Channel数量。connection_attempts
,尝试连接的套接字号。credentials
,连接密码。frame_max
,AMQP的最大帧大小。heartbeat
,心跳超时时间。host
,消息队列主机。locale
,传递给中间件的本地化信息。retry_delay
,套接字连接重试间隔秒数。socket_timeout
,套接字超时时间。ssl_options
,SSL连接配置,使用纯文本或者pika.SSLOptions
实例。port
,消息队列端口。virtual_port
,虚拟端口。tcp_options
,TCP配置。
ConnectionParameters
类构建函数中的credentials
参数需要使用PlainCredentials
类实例来定义。PlainCredentials
类在创建的时候接收两个参数,一个是用户名,另一个是明文密码。
有了连接参数实例,就可以来连接消息队列了。Pika提供的所有消息队列连接类都继承自pika.connection.Connection
类,所以构造方法接收的参数基本类似,常用参数有以下这些。
parameters
,连接参数。on_open_callback
,连接建立时调用的回调函数。on_open_error_callback
,建立连接失败时调用的回调函数。on_close_callback
,连接关闭时调用的回调函数。
当消息队列连接建立之后就可以创建Channel来进行消息的发送和消费了。如果不再需要消息队列的连接,需要使用.close()
方法关闭连接。.close()
方法可以接收两个参数,reply_code
用于指定关闭连接时的代码,默认为200;replay_text
用于指定连接关闭的原因,默认是"Normal shutdown"
。