Aktualisieren von Nachrichten
Der Update Message
-Vorgang aktualisiert das Sichtbarkeitstimeout einer Nachricht. Sie können diesen Vorgang auch verwenden, um den Inhalt einer Nachricht zu aktualisieren. Eine Nachricht muss in einem Format vorliegen, das in eine XML-Anforderung mit UTF-8-Codierung eingeschlossen werden kann, und die codierte Nachricht kann bis zu 64 KB groß sein. Dieser Vorgang wurde mit Version 2011-08-18 der Azure Queue Storage-API eingeführt.
Anforderung
Sie können die Update Message
Anforderung wie folgt erstellen. HTTPS wird empfohlen. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos und myqueue durch den Namen Ihrer Warteschlange.
Methode | Anforderungs-URI | HTTP-Version |
---|---|---|
PUT |
https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
Emulierter Speicherdienst
Dieser Vorgang wird für SDK 1.6 und höhere Versionen unterstützt.
Wenn Sie eine Anforderung für den emulierten Speicherdienst stellen, geben Sie den Emulatorhostnamen und den Warteschlangenspeicherport als 127.0.0.1:10001
an, gefolgt vom Namen des emulierten Speicherkontos.
Methode | Anforderungs-URI | HTTP-Version |
---|---|---|
PUT |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
URI-Parameter
Sie können die folgenden Parameter für den Anforderungs-URI angeben.
Parameter | BESCHREIBUNG |
---|---|
popreceipt |
Erforderlich. Gibt den gültigen Pop-Belegwert an, der von einem früheren Aufruf der Vorgänge "Nachrichten abrufen" oder "Nachricht aktualisieren" zurückgegeben wurde. Der popreceipt muss URL-codiert sein. |
visibilitytimeout |
Erforderlich. Gibt den neuen Sichtbarkeitstimeoutwert in Sekunden relativ zur Serverzeit an. Der neue Wert muss größer oder gleich 0 sein und darf nicht größer als 7 Tage sein. Das Sichtbarkeitstimeout einer Nachricht kann nicht auf einen Wert später als die Ablaufzeit festgelegt werden. Sie können eine Nachricht aktualisieren, bis sie gelöscht wurde oder abgelaufen ist. |
timeout |
Optional. Der timeout -Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Warteschlangenspeichervorgänge. |
Anforderungsheader
In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben.
Anforderungsheader | BESCHREIBUNG |
---|---|
Authorization |
Erforderlich. Gibt das Autorisierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage. |
Date or x-ms-date |
Erforderlich. Gibt die koordinierte Weltzeit (Coordinated Universal Time, UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage. |
x-ms-version |
Erfordert 2011-08-18 oder höher. 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, undurchsichtigen Wert mit einem Zeichenlimit von 1 Kibibyte (KiB) bereit, der beim Konfigurieren der Protokollierung in den Protokollen aufgezeichnet wird. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt. Weitere Informationen finden Sie unter Überwachen von Azure Queue Storage. |
Anforderungstext
Der Text der Anforderung enthält die Nachrichtendaten im folgenden XML-Format. Beachten Sie, dass der Nachrichteninhalt in einem Format vorliegen muss, das mit UTF-8 codiert werden kann.
<QueueMessage>
<MessageText>message-content</MessageText>
</QueueMessage>
Antwort
Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.
Statuscode
Bei einem erfolgreichen Vorgang wird der Statuscode 204 (Kein Inhalt) zurückgegeben. Informationen zu status Codes finden Sie unter Status- und Fehlercodes.
Antwortheader
Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann auch zusätzliche HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.
Anforderungsheader | BESCHREIBUNG |
---|---|
x-ms-request-id |
Dieser Header identifiziert eindeutig die Anforderung, die gestellt wurde, 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 von Warteschlangenspeicher an, die zum Ausführen der Anforderung verwendet wird. Dieser Header wird für Anforderungen zurückgegeben, die für Version 2009-09-19 und höher erfolgen. |
Date |
Ein UTC-Datums-/Uhrzeitwert, der die Uhrzeit angibt, zu der die Antwort initiiert wurde. Der Dienst generiert diesen Wert. |
x-ms-popreceipt |
Die Abrufbestätigung der Warteschlangennachricht. |
x-ms-time-next-visible |
Ein Datums-/Uhrzeitwert in UTC, der angibt, wann die Nachricht in der Warteschlange sichtbar ist. |
x-ms-client-request-id |
Sie können diesen Header verwenden, um Probleme mit Anforderungen und entsprechenden Antworten zu beheben. Der Wert dieses Headers entspricht dem Wert des x-ms-client-request-id Headers, wenn er in der Anforderung vorhanden ist. Der Wert ist höchstens 1.024 sichtbare ASCII-Zeichen. Wenn der x-ms-client-request-id Header in der Anforderung nicht vorhanden ist, ist dieser Header in der Antwort nicht vorhanden. |
Antworttext
Keine.
Authorization
Der Kontobesitzer kann diesen Vorgang ausführen. Darüber hinaus kann dies jeder mit einer freigegebenen Zugriffssignatur tun, der über die Berechtigung zum Ausführen dieses Vorgangs verfügt.
Beispielanforderung und -antwort
Die folgende Anforderung verlängert die Sichtbarkeit einer Warteschlangennachricht um 30 Sekunden und aktualisiert ihren Inhalt.
PUT https://myaccount.queue.core.windows.net/myqueue/messages/663d89aa-d1d9-42a2-9a6a-fcf822a97d2c?popreceipt=AgAAAAEAAAApAAAAGIw6Q29bzAE%3d&visibilitytimeout=30&timeout=30 HTTP/1.1
Die Anforderung wird mit den folgenden Headern gesendet;
x-ms-version: 2011-08-18
x-ms-date: Mon, 29 Aug 2011 17:17:21 GMT
Authorization: SharedKey myaccount:batcrWZ35InGCZeTUFWMdIQiOZPCW7UEyeGdDOg7WW4=
Content-Length: 75
Die Anforderung wird mit dem folgenden XML-Text gesendet:
<QueueMessage>
<MessageText>new-message-content</MessageText>
</QueueMessage>
Nachdem die Anforderung gesendet wurde, wird die folgende Antwort zurückgegeben:
HTTP/1.1 204 No Content
Content-Length: 0
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: df34a7dd-3cbe-4206-a586-d6de3cf225a7
x-ms-version: 2011-08-18
x-ms-popreceipt: AwAAAAIAAAApAAAAINtMQ29bzAEBAAAA
x-ms-time-next-visible: Mon, 29 Aug 2011 17:17:51 GMT
Date: Mon, 29 Aug 2011 17:17:21 GMT
Hinweise
Ein Update Message
Vorgang schlägt fehl, wenn die angegebene Nachricht nicht in der Warteschlange vorhanden ist oder wenn der angegebene Pop-Beleg nicht mit der Nachricht übereinstimmt.
Eine Abrufbestätigung wird vom Get Messages
-Vorgang oder vom Update Message
-Vorgang zurückgegeben. Abrufbestätigungen bleiben gültig, bis eines der folgenden Ereignisse eintritt:
Die Nachricht ist abgelaufen.
Die Nachricht wurde mithilfe des letzten empfangenen
Get Messages
Pop-Belegs von oderUpdate Message
gelöscht.Die Unsichtbarkeitszeit ist abgelaufen, und die Nachricht wurde durch eine
Get Messages
-Anforderung aus der Warteschlange entfernt. Nach Ablauf der Unsichtbarkeitszeit wird die Nachricht erneut angezeigt. Wenn sie von einer anderenGet Messages
Anforderung abgerufen wird, kann der zurückgegebene Pop-Beleg verwendet werden, um die Nachricht zu löschen oder zu aktualisieren.Die Nachricht wurde mit einem neuen Sichtbarkeitstimeout aktualisiert. Wenn die Nachricht aktualisiert wurde, wird eine neue Abrufbestätigung zurückgegeben.
Sie können den Update Message
Vorgang verwenden, um die Sichtbarkeit einer Warteschlangennachricht kontinuierlich zu erweitern. Diese Funktion kann nützlich sein, wenn eine Workerrolle eine Warteschlangennachricht leasen soll. Wenn beispielsweise eine Workerrolle Nachrichten abrufen aufruft und erkennt, dass sie mehr Zeit für die Verarbeitung einer Nachricht benötigt, kann sie die Sichtbarkeit der Nachricht kontinuierlich erweitern, bis sie verarbeitet wird. Wenn die Workerrolle während der Verarbeitung fehlschlägt, wird die Nachricht schließlich wieder sichtbar, und eine andere Workerrolle könnte sie verarbeiten.
Weitere Informationen
Autorisieren von Anforderungen an Azure Storage
Status- und Fehlercodes
Queue Storage-Fehlercodes