VERTRIEB: 1-800-867-1380

Get Messages

Letzte Aktualisierung: November 2013

Der Get Messages-Vorgang ruft eine oder mehrere Nachrichten ausgehend vom Anfang der Warteschlange ab.

Die Get Messages-Anforderung kann wie folgt erstellt werden. HTTPS wird empfohlen. Ersetzen Sie myaccount durch den Namen des Speicherkontos und myqueue durch den Namen der Warteschlange:

 

Methode Anforderungs-URI HTTP-Version

GET

https://myaccount.queue.core.windows.net/myqueue/messages

HTTP/1.1

Wenn Sie eine Anforderung für den emulierten Speicherdienst ausführen, geben Sie den Emulatorhostnamen und den Port des Warteschlangendiensts mit 127.0.0.1:10001 an, gefolgt vom Namen des emulierten Speicherkontos:

 

Methode Anforderungs-URI HTTP-Version

GET

http://127.0.0.1:10001/devstoreaccount1/myqueue/messages

HTTP/1.1

Weitere Informationen finden Sie unter About Development Storage.

Im Anforderungs-URI können die folgenden zusätzlichen Parameter angegeben werden.

 

Parameter Beschreibung

numofmessages

Optional. Ein ganzzahliger Wert ungleich null, der die Anzahl der Nachrichten angibt, die aus der Warteschlange abgerufen werden sollen. Der maximale Wert ist 32. Wenn weniger Nachrichten sichtbar sind, werden die sichtbaren Nachrichten zurückgegeben. Standardmäßig wird mit diesem Vorgang eine einzige Nachricht aus der Warteschlange abgerufen.

visibilitytimeout

Erforderlich. Gibt den neuen Sichtbarkeitstimeoutwert in Sekunden relativ zur Serverzeit an. Der neue Wert muss größer als oder gleich 1 Sekunde sein, und er darf in REST-Protokollversionen vor Version 2011-08-18 nicht größer als 7 Tage oder größer als 2 Stunden sein. Das Sichtbarkeitstimeout einer Nachricht kann auf einen Wert festgelegt werden, der nach der Ablaufzeit liegt.

timeout

Optional. Der timeout-Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Vorgänge des Warteschlangendiensts.

In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben.

 

Anforderungsheader Beschreibung

Authorization

Erforderlich. Gibt das Authentifizierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Authentifizierung für die Azure-Speicherdienste.

Date - oder - x-ms-date

Erforderlich. Gibt die Uhrzeit der Anforderung in koordinierter Weltzeit (UTC) an. Weitere Informationen finden Sie unter Authentifizierung für die Azure-Speicherdienste.

x-ms-version

Optional. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste.

x-ms-client-request-id

Optional. Stellt einen vom Client generierten, nicht transparenten Wert mit einer Zeichenbeschränkung von 1 KB bereit, der in den Analyseprotokollen erfasst wird, wenn die Protokollierung der Speicheranalyse aktiviert ist. Die Verwendung dieses Headers wird dringend empfohlen, um clientseitige Aktivitäten mit den vom Server empfangenen Anforderungen zu korrelieren. Weitere Informationen finden Sie unter Informationen zur Protokollierung durch die Speicheranalyse und Windows Azure-Protokollierung: Verwenden von Protokollen zur Nachverfolgung von Speicheranforderungen.

Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.

Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.

Weitere Informationen zu Statuscodes finden Sie unter Status- und Fehlercodes.

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann außerdem weitere HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

 

Antwortheader Beschreibung

x-ms-request-id

Dieser Header identifiziert die erfolgte Anforderung eindeutig und kann für die Problembehandlung der Anforderung verwendet werden. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge.

x-ms-version

Gibt die Version des Warteschlangendiensts an, der zum Ausführen der Abfrage verwendet wird. Dieser Header wird für Anforderungen zurückgegeben, die für Version 2009-09-19 und höher erfolgen.

Date

Ein vom Dienst generierter Datums-/Uhrzeitwert in UTC, der angibt, wann die Antwort initiiert wurde.

Das Antwort-XML für den Get Messages-Vorgang wird im folgenden Format zurückgegeben.

Das MessageID-Element ist ein GUID-Wert, der die Nachricht in der Warteschlange identifiziert. Dieser Wert wird vom Warteschlangendienst der Nachricht zugewiesen, und er ist für den Client nicht transparent. Dieser Wert kann zusammen mit dem Wert des PopReceipt-Elements verwendet werden, um eine Nachricht aus der Warteschlange zu löschen, nachdem sie mit dem Get Messages-Vorgang abgerufen wurde. Der Wert von PopReceipt ist auch für den Client nicht transparent; sein einziger Zweck besteht darin sicherzustellen, dass eine Nachricht mit dem Delete Message Vorgang gelöscht werden kann.

Die Elemente InsertionTime, ExpirationTime und TimeNextVisible werden als UTC-Werte dargestellt und sind entsprechend der Beschreibung in RFC 1123 formatiert.

Das DequeueCount-Element weist den Wert 1 auf, wenn die Nachricht das erste Mal aus der Warteschlange entfernt wird. Dieser Wert wird jedes Mal inkrementiert, wenn die Nachricht anschließend erneut aus der Warteschlange entfernt wird.

noteHinweis
Das DequeueCount-Element wird im Antworttext nur dann zurückgegeben, wenn die Warteschlange mit Version 2009-09-19 des Warteschlangendiensts erstellt wurde.

<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>

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>

Dieser Vorgang kann durch den Kontobesitzer und von jedem Benutzer mit einer SAS (Shared Access Signature) ausgeführt werden, der über die Berechtigung zum Ausführen des Vorgangs verfügt.

Der Nachrichteninhalt wird in dem Format abgerufen, das für den Put Message (REST-API) Vorgang verwendet wurde.

Wenn eine Nachricht aus der Warteschlange abgerufen wird, enthält die Antwort die Nachricht und einen Abrufbestätigungswert, der zum Löschen der Nachricht erforderlich ist. Die Nachricht wird nicht automatisch aus der Warteschlange gelöscht, nachdem sie jedoch abgerufen wurde, ist sie für andere Clients für das Zeitintervall nicht sichtbar, das durch den visibilitytimeout-Parameter angegeben wird.

Wenn mehrere Nachrichten abgerufen werden, weist jede Nachricht eine zugeordnete Abrufbestätigung auf. Die maximale Anzahl gleichzeitig abzurufender Nachrichten beträgt 32.

Vom Client, der die Nachricht abruft, wird erwartet, dass die Nachricht nach der Verarbeitung und vor dem Zeitpunkt gelöscht wird, der vom TimeNextVisible-Element der Antwort angegeben wird; dieser Zeitpunkt wird auf der Grundlage des Werts des visibilitytimeout-Parameters berechnet. Der Wert von visibilitytimeout wird zum Zeitpunkt des Abrufens der Nachricht addiert, um den Wert von TimeNextVisible zu bestimmen.

Eine Nachricht, die mit einem bestimmten visibilitytimeout abgerufen wird, kann aufgrund einer Uhrabweichung erneut angezeigt werden, bevor das angegebene Timeout verstrichen ist. Beachten Sie, dass ein Client basierend auf der Abrufbestätigung ableiten könnte, dass eine Nachricht bereits durch einen anderen Client aus der Warteschlange entfernt wurde. Die Abrufbestätigung ist für jede Entfernung einer Nachricht aus der Warteschlange eindeutig. Wenn die Abrufbestätigung eines Clients eine Nachricht nicht mehr löscht oder aktualisiert, und der Client empfängt einen Fehler 404 (Nicht gefunden), wurde die Nachricht von einem anderen Client aus der Warteschlange entfernt.

Wenn ein Consumer eine Nachricht über Get Messages abruft, wird diese Nachricht normalerweise bis zum Ablauf des Intervalls visibilitytimeout zum Löschen reserviert. Dieses Verhalten ist jedoch nicht garantiert. Nach Ablauf des Intervalls visibilitytimeout wird die Nachricht erneut für andere Consumer sichtbar. Wenn die Nachricht nicht nachfolgend von einem anderen Consumer abgerufen und gelöscht wird, kann der ursprüngliche Consumer die Nachricht mithilfe der ursprünglichen Abrufbestätigung löschen.

Beim erstmaligen Abrufen einer Nachricht wird ihre Eigenschaft DequeueCount auf 1 festgelegt. Wenn sie nicht gelöscht und anschließend erneut abgerufen wird, wird der Wert der Eigenschaft DequeueCount inkrementiert Der Client bestimmt anhand dieses Werts möglicherweise, wie oft eine Nachricht abgerufen wurde.

Wenn der Parameter visiblitytimeout oder numofmessages außerhalb des Gültigkeitsbereichs liegt, gibt der Dienst den Statuscode 400 (Ungültige Anforderung) sowie zusätzliche Fehlerinformationen zurück, wie im folgenden Beispiel veranschaulicht.


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>

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Anzeigen:
© 2014 Microsoft