komunikat Peek-Lock (odczyt niedestrukcyjny)
Ta operacja niepodziealnie pobiera i blokuje komunikat z kolejki lub subskrypcji na potrzeby przetwarzania. Nie ma gwarancji, że komunikat nie zostanie dostarczony do innych odbiorników (tylko w tej samej kolejce lub subskrypcji) w czasie trwania blokady określony w opisie kolejki/subskrypcji. Po wygaśnięciu blokady komunikat staje się dostępny dla innych odbiorców. Aby ukończyć przetwarzanie komunikatu, odbiornik 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ć polecenie Odblokuj komunikat , w przeciwnym razie okres trwania blokady może wygasnąć.
Ta operacja powinna być używana w aplikacjach, które wymagają gwarancji dostarczania co najmniej raz . Jeśli odbiornik 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.
Żądanie
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:
|
Treść żądania
Brak.
Reakcja
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 Status and Error Codes (Kody stanu i błędów).
Nagłówki odpowiedzi
Odpowiedź na tę operację zawiera następujące nagłówki. Odpowiedź może również zawierać dodatkowe 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 |
Kod BrokerProperties JSON odebranego komunikatu. Właściwość LockToken reprezentuje identyfikator blokady zwróconego komunikatu. Właściwość SequenceNumber reprezentuje numer sekwencji zwróconego komunikatu. |
Treść odpowiedzi
Treść odpowiedzi to treść komunikatu pobranego.
Przykład
Następujące żądanie 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 Priority
niestandardowe 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