你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
SendClient 类
用于发送消息的 AMQP 客户端。
- 继承
-
SendClient
构造函数
SendClient(target, auth=None, client_name=None, debug=False, msg_timeout=0, error_policy=None, keep_alive_interval=None, **kwargs)
参数
- auth
- AMQPAuth
连接的身份验证。 这应该是 uamqp.authentication.AMQPAuth 的子类之一。 目前,这包括:
uamqp.authentication.SASLAnonymous
uamqp.authentication.SASLPlain
uamqp.authentication.SASTokenAuth
uamqp.authentication.JWTTokenAuth
如果未提供身份验证,则默认使用 SASLAnnoymous。
- keep_alive_interval
- int
如果设置,将启动一个线程,以在用户不活动期间使连接保持活动状态。 该值将确定线程在 ping 连接之间) (休眠的时间(以秒为单位)。 如果为 0 或 None,则不会启动任何线程。
- send_settle_mode
- SenderSettleMode
用于确定消息发送操作的模式。 如果设置为 Unsettled,则客户端将等待服务确认消息已成功发送。 如果设置为“Settled”,则客户端不会等待确认并假定成功。
- receive_settle_mode
- ReceiverSettleMode
用于确定消息接收操作的模式。 如果设置为 “PeekLock”,接收方会在收到消息后锁定消息,直到客户端接受或拒绝该消息。 如果设置为 ReceiveAndDelete,则服务将假定成功接收消息并将其从队列中清除。 默认值为 PeekLock。
- desired_capabilities
- AMQPValue
对等终结点所需的扩展功能。 若要创建desired_capabilities对象,请执行以下操作:
-
- 创建所需功能符号的数组: capabilities_symbol_array = [types。AMQPSymbol (字符串) ]
-
- 将数组转换为 AMQPValue 对象: utils.data_factory (类型。AMQPArray (capabilities_symbol_array) )
- remote_idle_timeout_empty_frame_send_ratio
- float
无活动的连接的空帧与空闲时间的比率。 值必须介于 0.0 和 1.0(含)之间。 默认值为 0.5。
- on_attach
- <xref:func>[Source, Target, dict, AMQPConnectionError]
接收 ATTACH 帧时要运行的回调函数。 该函数必须采用 4 个参数:源、目标、属性和错误。
方法
auth_complete |
身份验证握手是否在连接初始化期间完成。 |
client_ready |
处理程序是否已完成所有启动进程(例如建立连接、会话、链接和身份验证),并且尚未准备好处理消息。 |
close |
关闭客户端。 这包括关闭会话和 CBS 身份验证层以及连接。 如果客户端是使用外部连接打开的,则会保持不变。 无法发送或接收其他消息,并且无法重新打开客户端。 所有待处理、未发送的消息将保持不清楚状态,以允许它们被检查并排入队列到新客户端。 |
do_work |
运行单个连接迭代。 如果连接仍处于打开状态并准备用于进一步工作,则返回 True ;如果需要关闭连接,则返回 False 。 |
messages_pending |
检查客户端是否在队列中保存任何未发送的消息。 |
mgmt_request |
运行请求/响应操作。 这些常用于针对$management节点的管理任务,但可以指定任何节点名称,可用选项将取决于目标服务。 |
open |
打开客户端。 客户端可以创建新的连接,也可以传入现有的连接。 此现有连接可能具有现有的 CBS 身份验证会话,该会话也将用于此客户端。 否则,将创建新的会话。 |
queue_message |
将一个或多个消息添加到发送队列。 在调用 SendClient.wait () 或 SendClient.send_all_messages () 之前,不会执行进一步操作。 尚未打开客户端,就可以将消息添加到队列。 可以同时将多个消息排队:
|
redirect |
使用链接 DETACH 重定向响应重定向客户端终结点。 |
send_all_messages |
发送队列中所有挂起的消息。 这将返回所有挂起消息的发送结果列表,以便确定是否有任何消息未能发送。 如果客户端尚未打开,此函数将打开它。 |
send_message |
发送单个消息或批处理消息。 |
wait |
运行客户端,直到队列中的所有挂起消息都已处理。 返回在处理消息后客户端是否仍在运行,或者是否已启动关闭。 |
auth_complete
client_ready
close
关闭客户端。 这包括关闭会话和 CBS 身份验证层以及连接。 如果客户端是使用外部连接打开的,则会保持不变。
无法发送或接收其他消息,并且无法重新打开客户端。
所有待处理、未发送的消息将保持不清楚状态,以允许它们被检查并排入队列到新客户端。
close()
do_work
运行单个连接迭代。 如果连接仍处于打开状态并准备用于进一步工作,则返回 True ;如果需要关闭连接,则返回 False 。
do_work(**kwargs)
返回类型
例外
messages_pending
mgmt_request
运行请求/响应操作。 这些常用于针对$management节点的管理任务,但可以指定任何节点名称,可用选项将取决于目标服务。
mgmt_request(message, operation, op_type=None, node=None, callback=None, **kwargs)
参数
用于处理管理请求返回的参数的函数,包括状态代码和说明(如果可用)。 这可用于重新设置响应格式或根据内容引发错误。 该函数必须采用 3 个参数 - 状态代码、响应消息和说明。
返回类型
open
打开客户端。 客户端可以创建新的连接,也可以传入现有的连接。 此现有连接可能具有现有的 CBS 身份验证会话,该会话也将用于此客户端。 否则,将创建新的会话。
open(connection=None)
参数
- connection
可在多个客户端之间共享的现有连接。
queue_message
将一个或多个消息添加到发送队列。 在调用 SendClient.wait () 或 SendClient.send_all_messages () 之前,不会执行进一步操作。 尚未打开客户端,就可以将消息添加到队列。 可以同时将多个消息排队:
send_client.queue_message (my_message)
send_client.queue_message (message_1、message_2、message_3)
*send_client.queue_message (my_message_list)
queue_message(*messages)
参数
- messages
要发送的消息。 这可以是 Message 的单个实例,也可以是 BatchMessage 实例中包装的多个消息。
redirect
使用链接 DETACH 重定向响应重定向客户端终结点。
redirect(redirect, auth)
参数
send_all_messages
发送队列中所有挂起的消息。 这将返回所有挂起消息的发送结果列表,以便确定是否有任何消息未能发送。 如果客户端尚未打开,此函数将打开它。
send_all_messages(close_on_done=True)
参数
返回类型
send_message
发送单个消息或批处理消息。
send_message(messages, close_on_done=False)
参数
- messages
要发送的消息。 这可以是 Message 的单个实例,也可以是 BatchMessage 实例中包装的多个消息。