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

ServiceBusReceivedMessage 类

从服务端收到的服务总线消息。

继承
azure.servicebus._common.message.ServiceBusMessage
ServiceBusReceivedMessage

构造函数

ServiceBusReceivedMessage(message: 'Message' | 'pyamqp_Message', receive_mode: ServiceBusReceiveMode | str = ServiceBusReceiveMode.PEEK_LOCK, frame: 'TransferFrame' | None = None, **kwargs: Any)

参数

名称 说明
message
必需
receive_mode
默认值: ServiceBusReceiveMode.PEEK_LOCK
frame
默认值: None

示例

检查收到的消息的属性。


       from typing import List
       from azure.servicebus import ServiceBusReceivedMessage
       messages_complex: List[ServiceBusReceivedMessage] = servicebus_receiver.receive_messages(max_wait_time=5)
       for message in messages_complex:
           print("Receiving: {}".format(message))
           print("Time to live: {}".format(message.time_to_live))
           print("Sequence number: {}".format(message.sequence_number))
           print("Enqueued Sequence number: {}".format(message.enqueued_sequence_number))
           print("Partition Key: {}".format(message.partition_key))
           print("Application Properties: {}".format(message.application_properties))
           print("Delivery count: {}".format(message.delivery_count))
           print("Message ID: {}".format(message.message_id))
           print("Locked until: {}".format(message.locked_until_utc))
           print("Lock Token: {}".format(message.lock_token))
           print("Enqueued time: {}".format(message.enqueued_time_utc))

变量

名称 说明
auto_renew_error
<xref:azure.servicebus.AutoLockRenewTimeout> 或 <xref:azure.servicebus.AutoLockRenewFailed>

使用 AutoLockRenewer 且无法续订消息锁时出错。

属性

application_properties

消息上的用户定义的属性。

返回

类型 说明
bytes, <xref:PrimitiveTypes>],

body

消息的正文。 格式可能因正文类型而异:对于 DATA,正文可以是字节或 Iterable[bytes]。 对于 SEQUENCE,正文可以是 List 或 Iterable[List]。 对于 VALUE,正文可以是任意类型。

返回

类型 说明
Any

body_type

基础 AMQP 消息的正文类型。

返回

类型 说明

content_type

内容类型描述符。

(可选)描述消息的有效负载,其描述符的格式为 RFC2045,第 5 节,例如“application/json”。

返回

类型 说明
str,

correlation_id

相关标识符。

允许应用程序出于关联目的指定消息的上下文。例如,反映正在答复的消息的 MessageId。

请参阅 中的 https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads?#message-routing-and-correlation消息路由和关联。

返回

类型 说明
str,

dead_letter_error_description

死信错误说明,从实体的死信子队列接收消息时。

返回

类型 说明
str

dead_letter_reason

死信原因,从实体的死信子队列接收消息时。

返回

类型 说明
str

dead_letter_source

此消息在死信之前排队的队列或订阅的名称。 此属性仅在死信消息中设置,并随后自动从死信队列转发到另一个实体的消息中设置。 指明已成为死信的消息所在的实体。

返回

类型 说明
str

delivery_count

已尝试传递此消息的次数。 当消息锁过期或接收方显式放弃消息时,计数将递增。

返回

类型 说明
int

enqueued_sequence_number

对于已自动转发的消息,此属性反映的是在原始提交点首次分配给消息的序列号。

返回

类型 说明
int

enqueued_time_utc

接受消息并将其存储在实体中的 UTC 日期时间。

返回

类型 说明

expires_at_utc

将邮件标记为要删除且由于过期而无法再从实体检索的 UTC 日期时间。 过期由 Message.time_to_live 属性控制。 此属性从 Message.enqueued_time_utc + Message.time_to_live计算。

返回

类型 说明

lock_token

当前消息的锁标记,用作对中转站在PEEK_LOCK模式下持有的锁的引用。

返回

类型 说明
UUID,
str

locked_until_utc

在队列/订阅中锁定消息之前的 UTC 日期时间。 当锁过期时,消息的传递计数将递增,消息再次可供检索。

返回

类型 说明

message

获取基础 LegacyMessage。 它已弃用,将在更高版本中删除。

返回

类型 说明
<xref:LegacyMessage>

message_id

用于标识消息的 ID。

消息标识符是应用程序定义的值,可用于唯一标识消息及其有效负载。 此标识符是自由格式字符串,可反映 GUID 或派生自应用程序上下文的标识符。 如果启用,重复检测 (看到 https://docs.microsoft.com/azure/service-bus-messaging/duplicate-detection) 功能标识并删除具有相同消息 ID 的第二次和后续提交。

返回

类型 说明
str,

partition_key

用于向分区实体发送消息的分区键。

设置此值可将相关消息分配给同一内部分区,以便正确记录提交顺序。 分区是由哈希函数通过此值进行选择,无法直接选择。

请参阅 中的 https://docs.microsoft.com/azure/service-bus-messaging/service-bus-partitioning分区队列和主题。

返回

类型 说明
str,

raw_amqp_message

仅限高级用法。 发送或接收的内部 AMQP 消息有效负载。 :rtype: ~azure.servicebus.amqp.AmqpAnnotatedMessage

reply_to

要向其发送答复的实体的地址。

应用程序定义的这一可选值是一种标准方法,可用于向消息接收程序明示答复路径。 如果发送程序希望收到答复,它会将此值设置为,要将答复发送到的队列或主题的绝对或相关路径。

请参阅 中的 https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads?#message-routing-and-correlation消息路由和关联。

返回

类型 说明
str,

reply_to_session_id

用于扩充 reply_to地址的 会话标识符。

此值扩充 reply_to 信息,并指定在发送到答复实体时应为答复设置的会话 ID。

请参阅 中的 https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads?#message-routing-and-correlation消息路由和关联。

返回

类型 说明
str,

scheduled_enqueue_time_utc

utc 计划的排队时间到消息。

此属性可用于通过 ServiceBusSender.send 方法发送消息时进行计划。 如果需要取消计划消息,则应使用 ServiceBusSender.schedule 方法,该方法返回可用于将来取消的序列号。 如果未设置,scheduled_enqueue_time_utc为 None。

返回

类型 说明

sequence_number

服务总线分配给消息的唯一编号。 序列号是在中转站接受并存储消息时分配给消息的唯一 64 位整数,可用作真正的标识符。 对于已分区实体,最前面的 16 位数反映的是分区标识符。 序列号单调增加。 在 48-64 位范围用尽后,序列号会回滚到 0。

返回

类型 说明
int

session_id

会话实体的消息的会话标识符。

对于会话实体,此应用程序定义的值指定消息的会话附属关系。 会话标识符相同的消息会处于摘要锁定状态,并确切启用依序处理和解多路复用。 对于非会话实体,将忽略此值。

请参阅 中的 https://docs.microsoft.com/azure/service-bus-messaging/message-sessions消息会话。

返回

类型 说明
str,

state

默认为“活动”。 表示消息的消息状态。 可以是“活动”、“延迟”。 或计划。

返回

类型 说明

subject

特定于应用程序的主题,有时称为标签。

借助此属性,应用程序可以类似于电子邮件主题行的标准化方式,向接收程序指明消息目的。

返回

类型 说明
str

time_to_live

消息的生存期。

此值是消息过期的相对持续时间,从中转站接受并存储消息的瞬间开始 ,如enqueued_time_utc中捕获的那样。 如果未明确设置,假设值为适用于相应队列或主题的 DefaultTimeToLive。 消息级别的生存时间值不能超过实体的生存时间设置,如果存在,则会以无提示方式进行调整。

请参阅 中的过期时间 https://docs.microsoft.com/azure/service-bus-messaging/message-expiration

返回

类型 说明

to

要寻址

此属性已保留,以供将来用于路由方案,暂被中转站本身忽略。 应用程序可以在规则驱动的自动转发链方案中使用此值,指明消息的预期逻辑目标。

有关详细信息,请参阅 https://docs.microsoft.com/azure/service-bus-messaging/service-bus-auto-forwarding

返回

类型 说明
str,