你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

AMQPClient 类

AMQP 客户端。

继承
builtins.object
AMQPClient

构造函数

AMQPClient(remote_address, auth=None, client_name=None, debug=False, error_policy=None, keep_alive_interval=None, **kwargs)

参数

remote_address
str, bytesAddress
必需

要连接到的 AMQP 终结点。 这可以是发送目标或接收源。

auth
AMQPAuth
默认值: None

连接的身份验证。 这应该是 uamqp.authentication.AMQPAuth 的子类之一。 目前,这包括:

  • uamqp.authentication.SASLAnonymous

  • uamqp.authentication.SASLPlain

  • uamqp.authentication.SASTokenAuth

  • uamqp.authentication.JWTTokenAuth

如果未提供身份验证,则默认使用 SASLAnnoymous。

client_name
strbytes
默认值: None

客户端的名称,也称为容器 ID。 如果未提供名称,将使用随机 GUID。

debug
bool
默认值: False

是否打开网络跟踪日志。 如果 为 True,则将在 INFO 级别记录跟踪日志。 默认值为 False。

error_policy
ErrorPolicy
默认值: None

用于分析链接、连接和消息处置上的错误的策略,以确定错误是否应可重试。

keep_alive_interval
int
默认值: None

如果设置,线程将启动,以在用户不活动期间使连接保持活动状态。 该值将确定线程在 ping 连接之间) (休眠多长时间(以秒为单位)。 如果为 0 或 None,则不会启动任何线程。

max_frame_size
int
必需

最大 AMQP 帧大小。 默认值为 63488 字节。

channel_max
int
必需

连接中会话通道的最大数目。

idle_timeout
int
必需

超时(以毫秒为单位),在此之后,如果没有进一步的活动,连接将关闭。

properties
dict
必需

连接属性。

remote_idle_timeout_empty_frame_send_ratio
float
必需

没有活动的连接的空帧与空闲时间的比率。 值必须介于 0.0 和 1.0(含)之间。 默认值为 0.5。

incoming_window
int
必需

传入消息允许的窗口大小。

outgoing_window
int
必需

传出消息允许的窗口大小。

handle_max
int
必需

最大并发链接句柄数。

on_attach
<xref:func>[Source, Target, dict, AMQPConnectionError]
必需

接收 ATTACH 帧时要运行的回调函数。 该函数必须采用 4 个参数:source、target、properties 和 error。

send_settle_mode
SenderSettleMode
必需

确定消息发送操作的模式。 如果设置为 “未解决”,则客户端将等待服务确认消息已成功发送。 如果设置为“Settled”,则客户端不会等待确认并假定成功。

receive_settle_mode
ReceiverSettleMode
必需

确定消息接收操作的模式。 如果设置为 PeekLock,接收方将在收到消息后锁定消息,直到客户端接受或拒绝该消息。 如果设置为 ReceiveAndDelete,则服务将假定成功接收消息并将其从队列中清除。 默认值为 PeekLock

encoding
str
必需

要用于作为字符串提供的参数的编码。 默认值为“UTF-8”

方法

auth_complete

身份验证握手是否在连接初始化期间完成。

client_ready

处理程序是否已完成所有启动过程,例如建立连接、会话、链接和身份验证,并且尚未准备好处理消息。

close

关闭客户端。 这包括关闭会话和 CBS 身份验证层以及连接。 如果客户端是使用外部连接打开的,这将保持不变。

无法发送或接收其他消息,并且无法重新打开客户端。

所有待处理、未发送的消息将保持不清楚状态,以允许它们被检查并排队到新客户端。

do_work

运行单个连接迭代。 如果连接仍处于打开状态并准备用于进一步工作,则返回 True ;如果需要关闭连接,则返回 False

mgmt_request

运行请求/响应操作。 这些常用于针对$management节点的管理任务,但可以指定任何节点名称,可用选项将取决于目标服务。

open

打开客户端。 客户端可以创建新的连接,也可以传入现有的连接。 此现有连接可能具有现有的 CBS 身份验证会话,该会话也将用于此客户端。 否则,将创建新的会话。

auth_complete

身份验证握手是否在连接初始化期间完成。

auth_complete()

返回类型

client_ready

处理程序是否已完成所有启动过程,例如建立连接、会话、链接和身份验证,并且尚未准备好处理消息。

client_ready()

返回类型

close

关闭客户端。 这包括关闭会话和 CBS 身份验证层以及连接。 如果客户端是使用外部连接打开的,这将保持不变。

无法发送或接收其他消息,并且无法重新打开客户端。

所有待处理、未发送的消息将保持不清楚状态,以允许它们被检查并排队到新客户端。

close()

do_work

运行单个连接迭代。 如果连接仍处于打开状态并准备用于进一步工作,则返回 True ;如果需要关闭连接,则返回 False

do_work(**kwargs)

返回类型

例外

TimeoutError or uamqp.errors.ClientTimeout if CBS authentication timeout reached.

mgmt_request

运行请求/响应操作。 这些常用于针对$management节点的管理任务,但可以指定任何节点名称,可用选项将取决于目标服务。

mgmt_request(message, operation, op_type=None, node=None, callback=None, **kwargs)

参数

message
Message
必需

在管理请求中发送的消息。

operation
bytes
必需

要执行的操作的类型。 此值将特定于服务,但常见值包括 READ、CREATE 和 UPDATE。 此值将作为应用程序属性添加到消息中。

op_type
bytes
默认值: None

要对其执行操作的类型。 这将特定于服务的实体。 此值将作为应用程序属性添加到消息中。

node
bytes
默认值: None

目标节点。 默认值为 b“$management”。

timeout
float
必需

提供一个可选的超时(以毫秒为单位),在此超时时间内必须接收对管理请求的响应。

callback
callable[int, bytes, Message]
默认值: None

用于处理管理请求返回的参数的函数,包括状态代码和说明(如果可用)。 这可用于重新设置响应格式或根据内容引发错误。 函数必须采用 3 个参数 - 状态代码、响应消息和说明。

status_code_field
bytes
必需

在响应正文中为状态代码提供备用名称,由于规范仍在草稿中,该名称可能因服务而异。 默认值为 b“statusCode”。

description_fields
bytes
必需

在响应正文中为说明提供一个备用名称,由于规范仍在草稿中,该名称可能因服务而异。 默认值为 b“statusDescription”。

返回类型

open

打开客户端。 客户端可以创建新的连接,也可以传入现有的连接。 此现有连接可能具有现有的 CBS 身份验证会话,该会话也将用于此客户端。 否则,将创建新的会话。

open(connection=None)

参数

connection
默认值: None

可在多个客户端之间共享的现有连接。