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 den låsvaraktighet som anges i beskrivningen av kön/prenumerationen. 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 det lås-ID 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, bör ett Unlock Message-kommando utfärdas, annars kan varaktighetsperioden för låset upphöra att gälla.

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 varaktighetsperiod upphör att gälla.

Begäran

Metod Begärande-URI 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

Begärandehuvuden

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

Begärandehuvud Beskrivning
Tillstånd Ange något av följande tokenvärden:
  • Microsoft Entra JSON-token för webbtoken (JWT).
    Exempel: Authorization: Bearer <Azure AD JWT token>.
    Information om hur du genererar en Microsoft Entra-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

Ingen.

Svar

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

Svarskoder

Kod Beskrivning
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.

Svarshuvuden

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

Svarsrubrik Beskrivning
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 av 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 i 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 de anpassade egenskaperna 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