Udostępnij za pośrednictwem


komunikat Peek-Lock (odczyt niedestrukcyjny)

Ta operacja niepodziealnie pobiera i blokuje komunikat z kolejki lub subskrypcji na potrzeby przetwarzania. Komunikat nie jest dostarczany do innych odbiorników (tylko w tej samej kolejce lub subskrypcji) w czasie trwania blokady określonej w opisie kolejki/subskrypcji. Po wygaśnięciu blokady komunikat staje się dostępny dla innych odbiorców. Aby ukończyć przetwarzanie komunikatu, odbiorca powinien wydać polecenie usuwania z identyfikatorem blokady odebranym z tej operacji. Aby porzucić przetwarzanie komunikatu i odblokować go dla innych odbiorników, należy wydać odblokuj komunikat polecenie, w przeciwnym razie okres trwania blokady może wygasnąć.

Ta operacja powinna być używana w aplikacjach, które wymagają co najmniej raz zapewniania dostarczania. Jeśli odbiorca nie usunie komunikatu przed pomyślnym przetworzeniem, ta operacja gwarantuje, że inny odbiornik będzie mógł podjąć próbę przetworzenia po wygaśnięciu okresu trwania blokady.

Prosić

Metoda Identyfikator URI żądania Wersja PROTOKOŁU HTTP
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head

lub

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

Nagłówki żądań

W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań. Oprócz wymienionych właściwości nagłówek może zawierać właściwości niestandardowe. Zobacz przykład.

Nagłówek żądania Opis
Autoryzacja Określ jedną z następujących wartości tokenu:
  • Token tokenu internetowego JSON (JWT) firmy Microsoft.
    Przykład: Authorization: Bearer <Azure AD JWT token>.
    Aby uzyskać informacje na temat generowania tokenu entra firmy Microsoft, zobacz Uwierzytelnianie na podstawie aplikacji.
  • Token SYGNATURY dostępu współdzielonego.
    Przykład: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Aby uzyskać informacje na temat generowania tokenu SAS, zobacz Generowanie tokenu sygnatury dostępu współdzielonego i Generowanie tokenu SAS.

Treść żądania

Żaden.

Odpowiedź

Odpowiedź zawiera kod stanu HTTP, zestaw nagłówków odpowiedzi i treść odpowiedzi.

Kody odpowiedzi

Kod Opis
201 Komunikat został pomyślnie pobrany i zablokowany.
204 Brak dostępnych komunikatów w określonym przedziale czasu.
400 Nieprawidłowe żądanie.
401 Niepowodzenie autoryzacji.
410 Określona kolejka lub subskrypcja nie istnieje.
500 Błąd wewnętrzny.

Aby uzyskać informacje o kodach stanu, zobacz stan i kody błędów.

Nagłówki odpowiedzi

Odpowiedź dla tej operacji zawiera następujące nagłówki. Odpowiedź może również zawierać bardziej standardowe nagłówki HTTP. Wszystkie standardowe nagłówki są zgodne ze specyfikacją protokołu HTTP/1.1 .

Nagłówek odpowiedzi Opis
Content-Type Ustaw wartość application/atom+xml;type=entry;charset=utf-8.
Location Identyfikator URI zablokowanego komunikatu. Możesz użyć tego identyfikatora URI, aby odblokować lub usunąć komunikat.
BrokerProperties Kodowanie JSON BrokerProperties odebranego komunikatu. Właściwość LockToken reprezentuje identyfikator blokady zwróconej wiadomości. Właściwość SequenceNumber reprezentuje numer sekwencji zwróconego komunikatu.

Treść odpowiedzi

Treść odpowiedzi to treść komunikatu pobranego komunikatu.

Przykład

Następujące żądania HTTP blokuje i zwraca komunikat z kolejki:

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  

Usługa Service Bus zwraca następującą odpowiedź. Komunikat zawiera właściwości niestandardowe Priority i 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  

Zobacz też