Sdílet prostřednictvím


Peek-Lock zpráva (nedestruktivní čtení)

Tato operace atomicky načte a uzamkne zprávu z fronty nebo odběru pro zpracování. Je zaručeno, že zpráva nebude doručena jiným příjemcům (pouze ve stejné frontě nebo odběru) během doby trvání zámku zadané v popisu fronty nebo odběru. Po vypršení platnosti zámku bude zpráva k dispozici ostatním příjemcům. Aby bylo možné dokončit zpracování zprávy, měl by příjemce vydat příkaz delete s ID zámku přijatého z této operace. Pokud chcete ukončit zpracování zprávy a odemknout ji pro ostatní příjemce, měl by být vydán příkaz Odemknout zprávu , jinak může doba trvání zámku vypršet.

Tato operace by se měla používat v aplikacích, které vyžadují záruky doručení Alespoň jednou . Pokud příjemce neodstraní zprávu před úspěšným zpracováním, tato operace zajistí, že se po uplynutí doby trvání zámku bude moct o zpracování pokusit jiný příjemce.

Žádost

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head

nebo

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

Hlavičky požadavku

Následující tabulka popisuje požadované a volitelné hlavičky požadavků. Kromě uvedených vlastností může hlavička obsahovat vlastní vlastnosti. Podívejte se na příklad.

Hlavička požadavku Description
Autorizace Zadejte jednu z následujících hodnot tokenu:
  • Token AZURE Active Directory (Azure AD) JSON Web Token (JWT).
    Příklad: Authorization: Bearer <Azure AD JWT token>.
    Informace o vygenerování tokenu Azure AD najdete v tématu Ověřování z aplikace.
  • Token SAS.
    Příklad: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Informace o vygenerování tokenu SAS najdete v tématech Generování tokenu sdíleného přístupového podpisu a Generování tokenu SAS.

Text požadavku

Žádné

Odpověď

Odpověď obsahuje stavový kód HTTP, sadu hlaviček odpovědi a tělo odpovědi.

Kódy odpovědí

Kód Description
201 Zpráva se úspěšně načetla a uzamknula.
204 Během zadaného časového limitu nejsou k dispozici žádné zprávy.
400 Chybný požadavek.
401 Autorizace se nezdařila.
410 Zadaná fronta nebo předplatné neexistuje.
500 Vnitřní chyba.

Informace o stavových kódech najdete v tématu Stavové kódy a kódy chyb.

Hlavičky odpovědi

Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může také obsahovat další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Hlavička odpovědi Description
Content-Type Nastavte na application/atom+xml;type=entry;charset=utf-8.
Location Identifikátor URI uzamčené zprávy. Tento identifikátor URI můžete použít k odemknutí nebo odstranění zprávy.
BrokerProperties Přijatá zpráva zakódovaná ve formátu BrokerProperties JSON. Vlastnost LockToken představuje ID zámku pro vrácenou zprávu. Vlastnost SequenceNumber představuje pořadové číslo vrácené zprávy.

Text odpovědi

Text odpovědi je tělo načtené zprávy.

Příklad

Následující požadavek HTTP uzamkne a vrátí zprávu z fronty:

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 vrátí následující odpověď. Zpráva obsahuje vlastní vlastnosti Priority a 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  

Viz také

Ukázka klienta HTTP služby Service Bus