Hämta meddelanden
Åtgärden Get Messages
hämtar ett eller flera meddelanden längst fram i kön.
Förfrågan
Begäran Get Messages
kan konstrueras på följande sätt. Vi rekommenderar att du använder HTTPS. Ersätt myaccount med namnet på ditt lagringskonto och ersätt myqueue
med namnet på kön:
Metod | URI för förfrågan | HTTP-version |
---|---|---|
GET |
https://myaccount.queue.core.windows.net/myqueue/messages |
HTTP/1.1 |
Emulerad lagringstjänstbegäran
När du gör en begäran mot den emulerade lagringstjänsten anger du emulatorns värdnamn och Azure Queue Storage-porten som 127.0.0.1:10001
, följt av namnet på det emulerade lagringskontot:
Metod | URI för förfrågan | HTTP-version |
---|---|---|
GET |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages |
HTTP/1.1 |
Mer information finns i Använda Azurite-emulatorn för lokal Azure Storage-utveckling.
URI-parametrar
Följande ytterligare parametrar kan anges i begärande-URI:n.
Parameter | Beskrivning |
---|---|
numofmessages |
Valfritt. Ett heltalsvärde som inte är noll och som anger hur många meddelanden som ska hämtas från kön, upp till högst 32. Om färre meddelanden visas returneras de synliga meddelandena. Som standard hämtas ett enda meddelande från kön med den här åtgärden. |
visibilitytimeout |
Valfritt. Anger det nya tidsgränsvärdet för synlighet i sekunder i förhållande till servertiden. Standardvärdet är 30 sekunder. Ett angivet värde måste vara större än eller lika med 1 sekund och får inte vara större än 7 dagar eller större än 2 timmar i REST-protokollversioner som är tidigare än 2011-08-18. Tidsgränsen för synlighet för ett meddelande kan anges till ett värde senare än förfallotiden. |
timeout |
Valfritt. Parametern timeout uttrycks i sekunder. Mer information finns i Ange tidsgränser för Azure Queue Storage-åtgärder. |
Begärandehuvuden
I följande tabell beskrivs obligatoriska och valfria begärandehuvuden.
Begärandehuvud | Beskrivning |
---|---|
Authorization |
Krävs. Anger auktoriseringsschema, kontonamn och signatur. Mer information finns i Auktorisera begäranden till Azure Storage. |
Date eller x-ms-date |
Krävs. Anger Coordinated Universal Time (UTC) för begäran. Mer information finns i Auktorisera begäranden till Azure Storage. |
x-ms-version |
Valfritt. Anger vilken version av åtgärden som ska användas för den här begäran. Mer information finns i Versionshantering för Azure Storage-tjänsterna. |
x-ms-client-request-id |
Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en teckengräns på 1 kibibyte (KiB) som registreras i loggarna när loggningen har konfigurerats. Vi rekommenderar starkt att du använder det här huvudet för att korrelera aktiviteter på klientsidan med begäranden som servern tar emot. Mer information finns i Övervaka Azure Queue Storage. |
Begärandetext
Inga.
Svarsåtgärder
Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden.
Statuskod
En lyckad åtgärd returnerar statuskoden 200 (OK).
Mer 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 ytterligare HTTP-standardhuvuden. Alla standardhuvuden överensstämmer med HTTP/1.1-protokollspecifikationen.
Svarsrubrik | Description |
---|---|
x-ms-request-id |
Identifierar unikt den begäran som gjordes och kan användas för att felsöka begäran. Mer information finns i Felsöka API-åtgärder. |
x-ms-version |
Anger den Azure Queue Storage-version som användes för att köra begäran. Det här huvudet returneras för begäranden som görs mot version 2009-09-19 och senare. |
Date |
Ett UTC-datum/tid-värde som genereras av tjänsten, vilket anger den tid då svaret initierades. |
x-ms-client-request-id |
Kan användas för att felsöka begäranden och motsvarande svar. Värdet för det här huvudet är lika med värdet x-ms-client-request-id för huvudet om det finns i begäran och värdet inte innehåller fler än 1 024 synliga ASCII-tecken.
x-ms-client-request-id Om rubriken inte finns i begäran visas den inte i svaret. |
Själva svaret
Svars-XML för åtgärden Get Messages
returneras i följande format.
Elementet MessageID
är ett GUID-värde som identifierar meddelandet i kön. Det här värdet tilldelas till meddelandet av Azure Queue Storage och är ogenomskinlig för klienten. Du kan använda värdet tillsammans med värdet för elementet PopReceipt
för att ta bort ett meddelande från kön när du har hämtat det med hjälp Get Messages
av åtgärden. Värdet för PopReceipt
är också ogenomskinlig för klienten. Dess enda syfte är att säkerställa att ett meddelande kan tas bort med åtgärden Ta bort meddelande .
Elementen InsertionTime
, ExpirationTime
och TimeNextVisible
representeras som UTC-värden och formateras enligt beskrivningen i RFC 1123.
Elementet DequeueCount
har värdet 1 första gången meddelandet tas bort. Det här värdet ökas varje gång meddelandet därefter dequeueras.
Anteckning
Elementet DequeueCount
returneras endast i svarstexten om kön skapades med hjälp av Azure Queue Storage version 2009-09-19.
<QueueMessagesList>
<QueueMessage>
<MessageId>string-message-id</MessageId>
<InsertionTime>insertion-time</InsertionTime>
<ExpirationTime>expiration-time</ExpirationTime>
<PopReceipt>opaque-string-receipt-data</PopReceipt>
<TimeNextVisible>time-next-visible</TimeNextVisible>
<DequeueCount>integer</DequeueCount>
<MessageText>message-body</MessageText>
</QueueMessage>
</QueueMessagesList>
Exempelsvar
Response Status:
HTTP/1.1 200 OK
Response Headers:
Transfer-Encoding: chunked
Content-Type: application/xml
Date: Fri, 16 Sep 2011 21:04:30 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
Response Body:
<?xml version="1.0" encoding="utf-8"?>
<QueueMessagesList>
<QueueMessage>
<MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId>
<InsertionTime>Fri, 09 Oct 2009 21:04:30 GMT</InsertionTime>
<ExpirationTime>Fri, 16 Oct 2009 21:04:30 GMT</ExpirationTime>
<PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>
<TimeNextVisible>Fri, 09 Oct 2009 23:29:20 GMT</TimeNextVisible>
<DequeueCount>1</DequeueCount>
<MessageText>PHRlc3Q+dGhpcyBpcyBhIHRlc3QgbWVzc2FnZTwvdGVzdD4=</MessageText>
</QueueMessage>
</QueueMessagesList>
Auktorisering
Den här åtgärden kan utföras av kontoägaren och av alla som har en signatur för delad åtkomst som har behörighet att utföra den här åtgärden.
Kommentarer
Meddelandeinnehållet hämtas i det format som användes för put message-åtgärden .
När ett meddelande hämtas från kön innehåller svaret meddelandet och ett popkvittovärde som krävs för att ta bort meddelandet. Meddelandet tas inte bort automatiskt från kön, men när det har hämtats visas det inte för andra klienter för det tidsintervall som anges av parametern visibilitytimeout
.
Om flera meddelanden hämtas har varje meddelande ett associerat popkvitto. Det maximala antalet meddelanden som kan hämtas samtidigt är 32.
Klienten som hämtar meddelandet förväntas ta bort meddelandet när det har bearbetats och före den tid som anges av elementet TimeNextVisible
i svaret, som beräknas baserat på parameterns visibilitytimeout
värde. Värdet visibilitytimeout
för läggs till den tid då meddelandet hämtas för att fastställa värdet TimeNextVisible
för .
På grund av klocksnedställning kan ett meddelande som hämtas med en viss visibilitytimeout
visas igen innan den angivna tidsgränsen har förflutit. Observera att en klient kan dra slutsatsen att ett meddelande redan har dequeued av en annan klient baserat på popkvittot, vilket är unikt för varje dequeuing av ett meddelande. Om en klients pop-kvitto inte längre fungerar för att ta bort eller uppdatera ett meddelande och klienten får ett 404-fel (hittades inte) har meddelandet tagits bort av en annan klient.
När en konsument hämtar ett meddelande via Get Messages
är meddelandet vanligtvis reserverat för borttagning tills tidsgränsen för synlighet upphör att gälla. Men det här beteendet är inte garanterat. När intervallet för synlighetstimeout upphör att gälla blir meddelandet återigen synligt för andra konsumenter. Om meddelandet inte hämtas och tas bort av en annan konsument kan den ursprungliga konsumenten ta bort meddelandet med hjälp av det ursprungliga popkvittot.
När ett meddelande hämtas för första gången anges dess DequeueCount
egenskap till 1. Om den inte tas bort och den sedan hämtas igen DequeueCount
ökas egenskapen. Klienten kan använda det här värdet för att avgöra hur många gånger ett meddelande har hämtats.
Om parameternsibilitytimeout eller numofmessages ligger inom intervallet returnerar tjänsten statuskod 400 (felaktig begäran) tillsammans med ytterligare felinformation, som du ser i följande exempel.
HTTP/1.1 400 One of the query parameters specified in the request URI is outside the permissible range.
Connection: Keep-Alive
Content-Length: 455
Via: 1.1 TK5-PRXY-22
Date: Wed, 02 May 2012 19:37:23 GMT
Content-Type: application/xml
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 6a03526c-ca2c-4358-a63a-b5d096988533
x-ms-version: 2011-08-18
<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>OutOfRangeQueryParameterValue</Code>
<Message>One of the query parameters specified in the request URI is outside the permissible range.
RequestId:6a03526c-ca2c-4358-a63a-b5d096988533
Time:2012-05-02T19:37:24.2438463Z
</Message>
<QueryParameterName>numofmessages</QueryParameterName>
<QueryParameterValue>0</QueryParameterValue>
<MinimumAllowed>1</MinimumAllowed>
<MaximumAllowed>32</MaximumAllowed>
</Error>
Se även
Felkoder för Azure Queue Storage
Auktorisera begäranden till Azure Storage
Status- och felkoder