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

Message 类

  • java.lang.Object
    • com.microsoft.azure.servicebus.Message

实现

public final class Message
implements Serializable, IMessage

构造函数摘要

构造函数 说明
Message()

创建一个空消息,其中一个空字节数组作为正文。

Message(byte[] content)

从字节数组创建消息。

Message(byte[] content, String contentType)

从字节数组创建消息。

Message(MessageBody body)

从消息正文创建消息。

Message(MessageBody body, String contentType)

从消息正文创建消息。

Message(String content)

从字符串创建消息。

Message(String messageId, byte[] content, String contentType)

从字节数组创建消息。

Message(String messageId, MessageBody body, String contentType)

从消息正文创建消息。

Message(String content, String contentType)

从字符串创建消息。

Message(String messageId, String content, String contentType)

从字符串创建消息。

方法摘要

修饰符和类型 方法和描述
IMessage createCopy()

创建此消息的浅表副本。

byte[] getBody()

获取此消息的正文作为字节数组。

String getContentType()

获取此消息的内容类型。

String getCorrelationId()

获取相关标识符。

String getDeadLetterSource()

获取此消息在死信之前排队的队列或订阅的名称。

long getDeliveryCount()

获取将此消息传递到客户端的次数。

Instant getEnqueuedTimeUtc()

获取此消息在 Azure 服务总线 中排队的时刻。

Instant getExpiresAtUtc()

获取此消息将过期的时刻。

String getLabel()

获取特定于应用程序的消息标签。

UUID getLockToken()

获取当前消息的锁标记。

Instant getLockedUntilUtc()

获取此消息的锁过期的时刻。

MessageBody getMessageBody()

获取此消息的正文。

String getMessageId()

获取此消息的 ID。

String getPartitionKey()

获取用于将消息发送到分区实体的分区键。

Map<String,Object> getProperties()

获取此消息的用户应用程序属性的映射。

String getReplyTo()

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

String getReplyToSessionId()

获取或设置用于扩充地址的 getReplyTo() 会话标识符。

Instant getScheduledEnqueueTimeUtc()

获取此消息的计划排队时间。

Instant getScheduledEnqueuedTimeUtc()

获取此消息的计划排队时间。

long getSequenceNumber()

获取服务总线分配给消息的唯一编号。

String getSessionId()

获取会话感知实体的会话标识符。

Duration getTimeToLive()

获取此消息过期之前的持续时间。

String getTo()

获取“to”地址。

String getViaPartitionKey()

获取用于通过另一个分区传输实体向实体发送消息的分区键。

void setBody(byte[] body)

将此消息的正文设置为字节数组。

void setContentType(String contentType)

设置此消息的内容类型。

void setCorrelationId(String correlationId)

设置相关标识符。

void setLabel(String label)

设置特定于应用程序的消息标签。

void setLockedUntilUtc(Instant lockedUntilUtc)
void setMessageBody(MessageBody body)

设置此消息的正文。

void setMessageId(String messageId)

设置此消息的 ID。

void setPartitionKey(String partitionKey)

设置用于将消息发送到分区实体的分区键

void setProperties(Map<String,Object> properties)

设置此消息的用户应用程序属性的映射。

void setReplyTo(String replyTo)

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

void setReplyToSessionId(String replyToSessionId)

获取或设置用于扩充地址的 getReplyTo() 会话标识符。

void setScheduledEnqueueTimeUtc(Instant scheduledEnqueueTimeUtc)

设置此消息的计划排队时间。

void setScheduledEnqueuedTimeUtc(Instant scheduledEnqueueTimeUtc)

设置此消息的计划排队时间。

void setSessionId(String sessionId)

设置会话感知实体的会话标识符。

void setTimeToLive(Duration timeToLive)

设置此消息过期前的持续时间。

void setTo(String to)

设置“to”地址。

void setViaPartitionKey(String partitionKey)

设置一个通过分区键,用于通过另一个分区实体将消息发送到目标实体

方法继承自 java.lang.Object

构造函数详细信息

Message

public Message()

创建一个空消息,其中一个空字节数组作为正文。

Message

public Message(byte[] content)

从字节数组创建消息。 消息正文类型设置为 binary。

Parameters:

content - 消息的内容

Message

public Message(byte[] content, String contentType)

从字节数组创建消息。 消息正文类型设置为 binary。

Parameters:

content - 消息的内容
contentType - 消息的内容类型

Message

public Message(MessageBody body)

从消息正文创建消息。

Parameters:

body - 邮件正文

Message

public Message(MessageBody body, String contentType)

从消息正文创建消息。

Parameters:

body - 邮件正文
contentType - 消息的内容类型

Message

public Message(String content)

从字符串创建消息。 出于向后兼容性的原因,字符串将转换为字节数组,并将消息正文类型设置为 binary。

Parameters:

content - 消息的内容。

Message

public Message(String messageId, byte[] content, String contentType)

从字节数组创建消息。 消息正文类型设置为 binary。

Parameters:

messageId - 消息的 ID
content - 消息的内容
contentType - 消息的内容类型

Message

public Message(String messageId, MessageBody body, String contentType)

从消息正文创建消息。

Parameters:

messageId - 消息的 ID
body - 邮件正文
contentType - 消息的内容类型

Message

public Message(String content, String contentType)

从字符串创建消息。 出于向后兼容性的原因,字符串将转换为字节数组,并将消息正文类型设置为 binary。

Parameters:

content - 消息的内容
contentType - 消息的内容类型

Message

public Message(String messageId, String content, String contentType)

从字符串创建消息。 出于向后兼容性的原因,字符串将转换为字节数组,并将消息正文类型设置为 binary。

Parameters:

messageId - 消息的 ID
content - 消息的内容
contentType - 消息的内容类型

方法详细信息

createCopy

public IMessage createCopy()

创建此消息的浅表副本。

getBody

@Deprecated
public byte[] getBody()

获取此消息的正文作为字节数组。 由客户端应用程序对字节进行解码。

getContentType

public String getContentType()

获取此消息的内容类型。 (可选)描述消息的有效负载,其描述符的格式为 RFC2045,第 5 节,例如“application/json”。 请注意,内容类型与邮件正文类型不同。

getCorrelationId

public String getCorrelationId()

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

getDeadLetterSource

public String getDeadLetterSource()

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

getDeliveryCount

public long getDeliveryCount()

获取将此消息传递到客户端的次数。 当消息锁期满,或接收程序明确放弃消息时,此计数递增。 此属性为只读。

getEnqueuedTimeUtc

public Instant getEnqueuedTimeUtc()

获取此消息在 Azure 服务总线 中排队的时刻。 实体接受并存储消息的即时 UTC。 对于计划的消息,这反映了激活消息的时间。 如果接收程序不想信任发送程序的时钟,可以将此值用作权威的中性到达时间指示器。 此属性为只读。

getExpiresAtUtc

public Instant getExpiresAtUtc()

获取此消息将过期的时刻。 该值是计划删除消息时的 UTC 即时,由于过期,不再可用于从实体检索。 过期由 getTimeToLive() 属性控制。 此属性是从 getEnqueuedTimeUtc()+getTimeToLive()计算的。

getLabel

public String getLabel()

获取特定于应用程序的消息标签。 借助此属性,应用程序可以类似于电子邮件主题行的标准化方式,向接收程序指明消息目的。 映射的 AMQP 属性为“subject”。

getLockToken

public UUID getLockToken()

获取当前消息的锁标记。 锁令牌是对中转站在 PEEKLOCK 模式下持有的锁的引用。 锁用于显式确定消息,如 产品文档中更详细地说明的那样。 令牌还可用于通过 Deferral API 永久固定锁,并利用该令牌将消息从常规传递状态流中取出。 此属性为只读。

getLockedUntilUtc

public Instant getLockedUntilUtc()

获取此消息的锁过期的时刻。 对于检索到的处于锁定状态(速览锁定接收模式,而非预先安排)的消息,此属性反映消息在队列/订阅中解除锁定的即时 UTC。 当锁过期时, getDeliveryCount() 将递增,并且消息再次可供检索。 此属性为只读。

getMessageBody

public MessageBody getMessageBody()

获取此消息的正文。 客户端应用程序应根据正文类型提取消息内容。

getMessageId

public String getMessageId()

获取此消息的 ID。 消息标识符是应用程序定义的值,可用于唯一标识消息及其有效负载。 此标识符是自由格式字符串,可反映 GUID 或派生自应用程序上下文的标识符。 如果启用, 重复检测 功能将识别并删除具有相同 MessageId 的消息的第二次和后续提交。

getPartitionKey

public String getPartitionKey()

获取用于将消息发送到分区实体的分区键。 对于已分区实体,设置此值后,可以将相关消息分配到同一内部分区,以便能够正确记录提交序列顺序。 分区是由哈希函数通过此值进行选择,无法直接选择。 对于会话感知实体, getSessionId() 属性将替代此值。

getProperties

public Map getProperties()

获取此消息的用户应用程序属性的映射。 客户端应用程序可以使用此映射设置用户属性 (消息) 标头。

getReplyTo

public String getReplyTo()

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

getReplyToSessionId

public String getReplyToSessionId()

获取或设置用于扩充地址的 getReplyTo() 会话标识符。 此值补充了 ReplyTo 信息,并指定了应为发送给答复实体的答复设置的 SessionId。

getScheduledEnqueueTimeUtc

public Instant getScheduledEnqueueTimeUtc()

获取此消息的计划排队时间。 此值用于延迟消息可用性。 消息安全地添加到队列,但不被视为活动消息,因此在计划的排队时间之前不可检索。 请注意,在确切的给定时刻,消息可能不会激活 (排队) ;实际激活时间取决于队列的工作负荷及其状态。

getScheduledEnqueuedTimeUtc

@Deprecated
public Instant getScheduledEnqueuedTimeUtc()

获取此消息的计划排队时间。 此值用于延迟消息可用性。 消息安全地添加到队列,但不被视为活动消息,因此在计划的排队时间之前不可检索。 请注意,在确切的给定时刻,消息可能不会激活 (排队) ;实际激活时间取决于队列的工作负荷及其状态。

getSequenceNumber

public long getSequenceNumber()

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

getSessionId

public String getSessionId()

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

getTimeToLive

public Duration getTimeToLive()

获取此消息过期之前的持续时间。 此值是消息过期的相对持续时间,从中转站接受并存储消息的瞬间开始,如 中 getEnqueuedTimeUtc()捕获的那样。 如果未显式设置,则假定值为相应队列或主题的 DefaultTimeToLive 集。 消息级 TimeToLive 值不得超过实体的 DefaultTimeToLive 设置,否则将会进行无提示调整。

getTo

public String getTo()

获取“to”地址。

getViaPartitionKey

public String getViaPartitionKey()

获取用于通过另一个分区传输实体向实体发送消息的分区键。 如果消息是通过事务范围内的传输队列发送的,则此值选择传输队列分区:这在功能上等效于 getPartitionKey() 并确保消息在传输时保持一起并按顺序排列。

setBody

@Deprecated
public void setBody(byte[] body)

将此消息的正文设置为字节数组。

Parameters:

body

setContentType

public void setContentType(String contentType)

设置此消息的内容类型。

Parameters:

contentType

setCorrelationId

public void setCorrelationId(String correlationId)

设置相关标识符。

Parameters:

correlationId

setLabel

public void setLabel(String label)

设置特定于应用程序的消息标签。

Parameters:

label

setLockedUntilUtc

public void setLockedUntilUtc(Instant lockedUntilUtc)

Parameters:

lockedUntilUtc

setMessageBody

public void setMessageBody(MessageBody body)

设置此消息的正文。

Parameters:

body

setMessageId

public void setMessageId(String messageId)

设置此消息的 ID。

Parameters:

messageId

setPartitionKey

public void setPartitionKey(String partitionKey)

设置用于将消息发送到分区实体的分区键

Parameters:

partitionKey

setProperties

public void setProperties(Map properties)

设置此消息的用户应用程序属性的映射。 客户端应用程序可以使用此映射在消息上设置用户属性。

Parameters:

properties

setReplyTo

public void setReplyTo(String replyTo)

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

Parameters:

replyTo

setReplyToSessionId

public void setReplyToSessionId(String replyToSessionId)

获取或设置用于扩充地址的 getReplyTo() 会话标识符。

Parameters:

replyToSessionId

setScheduledEnqueueTimeUtc

public void setScheduledEnqueueTimeUtc(Instant scheduledEnqueueTimeUtc)

设置此消息的计划排队时间。

Parameters:

scheduledEnqueueTimeUtc

setScheduledEnqueuedTimeUtc

@Deprecated
public void setScheduledEnqueuedTimeUtc(Instant scheduledEnqueueTimeUtc)

设置此消息的计划排队时间。

Parameters:

scheduledEnqueueTimeUtc

setSessionId

public void setSessionId(String sessionId)

设置会话感知实体的会话标识符。

Parameters:

sessionId

setTimeToLive

public void setTimeToLive(Duration timeToLive)

设置此消息过期前的持续时间。

Parameters:

timeToLive

setTo

public void setTo(String to)

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

Parameters:

to

setViaPartitionKey

public void setViaPartitionKey(String partitionKey)

设置一个通过分区键,用于通过另一个分区实体将消息发送到目标实体

Parameters:

partitionKey

适用于