Dela via


Peek-Lock meddelande (icke-destruktiv läsning)

Den här åtgärden hämtar och låser ett meddelande från en kö eller prenumeration för bearbetning. Meddelandet kommer garanterat inte att levereras till andra mottagare (endast i samma kö eller prenumeration) under låsvaraktigheten som anges i kö-/prenumerationsbeskrivningen. När låset upphör att gälla blir meddelandet tillgängligt för andra mottagare. För att slutföra bearbetningen av meddelandet bör mottagaren utfärda ett borttagningskommando med lås-ID:t som tagits emot från den här åtgärden. Om du vill avbryta bearbetningen av meddelandet och låsa upp det för andra mottagare ska kommandot Unlock Message utfärdas, annars kan låsets varaktighetsperiod gå ut.

Den här åtgärden bör användas i program som kräver leveransgarantier minst en gång . Om mottagaren inte tar bort meddelandet innan bearbetningen lyckas säkerställer den här åtgärden att en annan mottagare kan försöka bearbeta efter att låsets varaktighet har gått ut.

Förfrågan

Metod URI för förfrågan HTTP-version
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head

eller

http{s}://{serviceNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/messages/head|HTTP/1.1

Rubriker för begäran

I följande tabell beskrivs obligatoriska och valfria begärandehuvuden. Förutom de angivna egenskaperna kan huvudet innehålla anpassade egenskaper. Se exemplet.

Begärandehuvud Description
Auktorisering Ange något av följande tokenvärden:
  • Azure Active Directory-token (Azure AD) JSON-webbtoken (JWT).
    Exempel: Authorization: Bearer <Azure AD JWT token>.
    Information om hur du genererar en Azure AD-token finns i Autentisera från ett program.
  • En SAS-token.
    Exempel: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Information om hur du genererar en SAS-token finns i Generera en signaturtoken för delad åtkomst och Generera SAS-token.

Begärandetext

Inga.

Svarsåtgärder

Svaret innehåller en HTTP-statuskod, en uppsättning svarshuvuden och svarstexten.

Svarskoder

Kod Description
201 Meddelandet har hämtats och låsts.
204 Inga meddelanden är tillgängliga inom den angivna tidsgränsen.
400 Felaktig begäran.
401 Auktoriseringsfel.
410 Den angivna kön eller prenumerationen finns inte.
500 Internt fel.

Information om statuskoder finns i Status och Felkoder.

Svarsrubriker

Svaret för den här åtgärden innehåller följande rubriker. Svaret kan också innehålla ytterligare HTTP-standardhuvuden. Alla standardhuvuden överensstämmer med HTTP/1.1-protokollspecifikationen.

Svarshuvud Description
Content-Type Ange till application/atom+xml;type=entry;charset=utf-8.
Location URI:n för det låsta meddelandet. Du kan använda den här URI:n för att låsa upp eller ta bort meddelandet.
BrokerProperties JSON-kodad BrokerProperties för det mottagna meddelandet. Egenskapen LockToken representerar lås-ID:t för det returnerade meddelandet. Egenskapen SequenceNumber representerar sekvensnumret för det returnerade meddelandet.

Svarstext

Svarstexten är meddelandetexten för det hämtade meddelandet.

Exempel

Följande HTTP-begäran låser och returnerar meddelande från en kö:

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  

Service Bus returnerar följande svar. Meddelandet innehåller anpassade egenskaper Priority och 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  

Se även

Service Bus HTTP-klientexempel