Peek-Lock 訊息 (非破壞性讀取)
這項作業會以不可部分完成的方式從佇列或訂用帳戶擷取並鎖定訊息以供處理。 在佇列/訂用帳戶描述中指定的鎖定期間,訊息保證不會傳遞至其他接收者(僅限在同一個佇列或訂用帳戶上)。 當鎖定到期時,訊息會變成可供其他接收者使用。 為了完成訊息的處理,接收者應該發出delete命令,其中包含從這項作業接收的鎖定標識符。 若要放棄處理訊息並解除鎖定給其他接收者,應該發出 解除鎖定訊息 命令,否則鎖定持續時間可能會過期。
此作業應該用於需要 至少一次 傳遞保證的應用程式。 如果接收者在處理成功之前未刪除訊息,這項作業可確保另一個接收者能夠在鎖定期間到期后嘗試處理。
請求
方法 | 要求 URI | HTTP 版本 |
---|---|---|
發佈 | http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head 或 http{s}://{serviceNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/messages/head|HTTP/1.1 |
要求標頭
下表描述必要和選擇性的要求標頭。 除了列出的屬性之外,標頭還可以包含自定義屬性。 請參閱範例。
要求標頭 | 描述 |
---|---|
授權 | 指定下列其中一個權杖值:
|
要求本文
沒有。
回應
回應包含 HTTP 狀態代碼、一組響應標頭和響應主體。
回應碼
法典 | 描述 |
---|---|
201 | 訊息已成功擷取並鎖定。 |
204 | 在指定的逾時期間內沒有可用的訊息。 |
400 | 不正確的要求。 |
401 | 授權失敗。 |
410 | 指定的佇列或訂用帳戶不存在。 |
500 | 內部錯誤。 |
如您需狀態代碼的相關資訊,請參閱 狀態和錯誤碼。
回應標頭
此作業的回應包含下列標頭。 回應也可能包含更標準的 HTTP 標頭。 所有標準標頭都符合 HTTP/1.1 通訊協定規格,。
回應標頭 | 描述 |
---|---|
Content-Type |
設定為 application/atom+xml;type=entry;charset=utf-8 。 |
Location |
鎖定訊息的 URI。 您可以使用此 URI 來解除鎖定或刪除訊息。 |
BrokerProperties |
已接收訊息的 JSON 編碼 BrokerProperties 。
LockToken 屬性代表傳回訊息的鎖定標識碼。
SequenceNumber 屬性代表傳回訊息的序號。 |
回應本文
回應本文是所擷取訊息的訊息本文。
例
下列 HTTP 要求會鎖定並從佇列傳回訊息:
POST https://your-namespace.servicebus.windows.net/HttpClientSampleQueue/messages/head?timeout=60 HTTP/1.1
Authorization: SharedAccessSignature sr=your-namespace&sig=Fg8yUyR4MOmXfHfj55f5hY4jGb8x2Yc%2b3%2fULKZYxKZk%3d&se=1404256819&skn=RootManageSharedAccessKey
Host: your-namespace.servicebus.windows.net
Content-Length: 0
服務總線會傳回下列回應。 訊息包含自訂屬性 Priority
和 Customer
:
HTTP/1.1 201 Created
Transfer-Encoding: chunked
Content-Type: application/atom+xml;type=entry;charset=utf-8
Location: https://your-namespace.servicebus.windows.net/httpclientsamplequeue/messages/2/7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547
Server: Microsoft-HTTPAPI/2.0
BrokerProperties: {"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Wed, 02 Jul 2014 01:32:27 GMT","Label":"M1","LockToken":"7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547","LockedUntilUtc":"Wed, 02 Jul 2014 01:33:27 GMT","MessageId":"31907572164743c38741631acd554d6f","SequenceNumber":2,"State":"Active","TimeToLive":10}
Priority: "High"
Customer: "12345,ABC"
Date: Wed, 02 Jul 2014 01:32:27 GMT
12
This is a message.
0