Üzenet frissítése

A Update Message művelet frissíti az üzenetek láthatósági időtúllépését. Ezzel a művelettel frissítheti az üzenetek tartalmát. Az üzeneteknek olyan formátumúnak kell lenniük, amely UTF-8 kódolású XML-kérelemben szerepelhet, és a kódolt üzenet mérete legfeljebb 64 KB lehet. Ezt a műveletet az Azure Queue Storage API 2011-08-18-es verziójával vezettük be.

Kérés

A kérést a Update Message következőképpen hozhatja létre. A HTTPS használata ajánlott. Cserélje le a myaccount kifejezést a tárfiók nevére, a myqueue értékét pedig az üzenetsor nevére.

Metódus Kérés URI-ja HTTP-verzió
PUT https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

Emulált tárolási szolgáltatás

Ezt a műveletet az SDK 1.6-os és újabb verziói támogatják.

Amikor kérést küld az emulált tárolási szolgáltatásra, adja meg az emulátor gazdagépnevét és a Queue Storage-portot 127.0.0.1:10001, majd az emulált tárfiók nevét.

Metódus Kérés URI-ja HTTP-verzió
PUT http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

URI-paraméterek

A kérelem URI-ján a következő paramétereket adhatja meg.

Paraméter Leírás
popreceipt Kötelező. Megadja az Üzenetek lekérése vagy az Üzenet frissítése művelet korábbi hívásából visszaadott érvényes pop-visszaigazolási értéket. A popreceipt kódnak URL-kódolásúnak kell lennie.
visibilitytimeout Kötelező. Az új láthatóság időtúllépési értékét adja meg másodpercben a kiszolgálói időhöz viszonyítva. Az új értéknek 0-nál nagyobbnak vagy egyenlőnek kell lennie, és nem lehet nagyobb 7 napnál. Az üzenetek láthatósági időtúllépése nem állítható be a lejárati időnél későbbi értékre. Az üzeneteket mindaddig frissítheti, amíg az el nem lett törölve vagy lejárt.
timeout Választható. A timeout paraméter másodpercben van kifejezve. További információ: Időtúllépések beállítása a Queue Storage-műveletekhez.

Kérésfejlécek

Az alábbi táblázat a szükséges és nem kötelező kérelemfejléceket ismerteti.

Kérelem fejléce Leírás
Authorization Kötelező. Megadja az engedélyezési sémát, a fióknevet és az aláírást. További információ: Kérések engedélyezése az Azure Storage-ba.
Date or x-ms-date Kötelező. Megadja a kérés egyezményes világidő (UTC) formátumban kifejezett időpontját. További információ: Kérések engedélyezése az Azure Storage-ba.
x-ms-version 2011-08-18-ra vagy újabbra van szükség. A kérelemhez használni kívánt művelet verzióját adja meg. További információ: Az Azure Storage-szolgáltatások verziószámozása.
x-ms-client-request-id Választható. Ügyfél által generált, átlátszatlan értéket biztosít egy 1 kib-os (KiB) karakterkorláttal, amelyet a naplózás konfigurálásakor rögzít a naplókban. Javasoljuk, hogy ezt a fejlécet használva korrelálja az ügyféloldali tevékenységeket a kiszolgáló által kapott kérésekkel. További információ: Az Azure Queue Storage monitorozása.

A kérés törzse

A kérés törzse az üzenetadatokat a következő XML-formátumban tartalmazza. Vegye figyelembe, hogy az üzenet tartalmának olyan formátumban kell lennie, amely UTF-8 kódolható.

<QueueMessage>  
    <MessageText>message-content</MessageText>  
</QueueMessage>  

Reagálás

A válasz tartalmaz egy HTTP-állapotkódot és egy válaszfejléceket.

Állapotkód

A sikeres művelet a 204-ben (tartalom nélkül) visszaadott állapotkódot adja vissza. Az állapotkódokkal kapcsolatos információkért lásd: Állapot- és hibakódok.

Válaszfejlécek

A műveletre adott válasz a következő fejléceket tartalmazza. A válasz további szabványos HTTP-fejléceket is tartalmazhat. Minden szabványos fejléc megfelel a HTTP/1.1 protokoll specifikációjának.

Kérelem fejléce Leírás
x-ms-request-id Ez a fejléc egyedileg azonosítja a végrehajtott kérést, és a kérés hibaelhárításához használható. További információ: API-műveletek hibaelhárítása.
x-ms-version A kérés futtatásához használt Queue Storage-verziót jelzi. A rendszer ezt a fejlécet adja vissza a 2009-09-19-es és újabb verzióval kapcsolatos kérésekhez.
Date Utc dátum/idő érték, amely a válasz indításának időpontját jelzi. A szolgáltatás létrehozza ezt az értéket.
x-ms-popreceipt Az üzenetsor üzenetének pop-fogadása.
x-ms-time-next-visible Egy UTC dátum/idő érték, amely azt jelzi, hogy az üzenet mikor lesz látható az üzenetsoron.
x-ms-client-request-id Ezzel a fejlécmel elháríthatja a kéréseket és a megfelelő válaszokat. A fejléc értéke megegyezik a fejléc értékével x-ms-client-request-id , ha az szerepel a kérelemben. Az érték legfeljebb 1024 látható ASCII-karakter lehet. Ha a x-ms-client-request-id fejléc nem szerepel a kérelemben, akkor ez a fejléc nem jelenik meg a válaszban.

Választörzs

Nincsenek.

Engedélyezés

A fióktulajdonos végrehajthatja ezt a műveletet. Emellett bárki, aki rendelkezik közös hozzáférésű jogosultságkóddal, és rendelkezik a művelet végrehajtásához szükséges engedéllyel, megteheti.

Mintakérés és válasz

A következő kérés 30 másodperccel meghosszabbítja az üzenetsor üzeneteinek láthatóságát, és frissíti annak tartalmát.

PUT https://myaccount.queue.core.windows.net/myqueue/messages/663d89aa-d1d9-42a2-9a6a-fcf822a97d2c?popreceipt=AgAAAAEAAAApAAAAGIw6Q29bzAE%3d&visibilitytimeout=30&timeout=30 HTTP/1.1  
  

A kérést a rendszer a következő fejlécekkel küldi el:

x-ms-version: 2011-08-18  
x-ms-date: Mon, 29 Aug 2011 17:17:21 GMT  
Authorization: SharedKey myaccount:batcrWZ35InGCZeTUFWMdIQiOZPCW7UEyeGdDOg7WW4=  
Content-Length: 75  

A kérést a rendszer a következő XML-törzstel küldi el:

<QueueMessage>  
    <MessageText>new-message-content</MessageText>  
</QueueMessage>  

A kérés elküldése után a rendszer a következő választ adja vissza:

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  

Megjegyzések

A Update Message művelet meghiúsul, ha a megadott üzenet nem létezik az üzenetsorban, vagy ha a megadott előugró üzenet nem egyezik meg az üzenettel.

A művelet vagy a Get Messages művelet egy előugró nyugtát Update Message ad vissza. Az előugró nyugták mindaddig érvényesek maradnak, amíg az alábbi események valamelyike nem következik be:

  • Az üzenet lejárt.

  • Az üzenetet az utolsó fogadott pop nyugtával törölte, a vagy Update Messagea fájlbólGet Messages.

  • A láthatatlanság ideje lejárt, és az üzenetet egy Get Messages kérés törölte. Amikor a láthatatlanság ideje elévül, az üzenet ismét láthatóvá válik. Ha egy másik Get Messages kérés kéri le, a visszaadott pop nyugtával törölheti vagy frissítheti az üzenetet.

  • Az üzenet frissült egy új láthatósági időtúllépéssel. Az üzenet frissítésekor a rendszer egy új előugró nyugtát ad vissza.

A művelettel Update Message folyamatosan bővítheti az üzenetsorüzenetek láthatatlanságát. Ez a funkció akkor lehet hasznos, ha azt szeretné, hogy egy feldolgozói szerepkör egy üzenetsort béreljen. Ha például egy feldolgozói szerepkör meghívja az Üzenetek lekérése elemet, és felismeri, hogy több időre van szüksége egy üzenet feldolgozásához, a feldolgozásig folyamatosan kiterjesztheti az üzenet láthatatlanságát. Ha a feldolgozói szerepkör nem működik a feldolgozás során, az üzenet végül ismét láthatóvá válik, és egy másik feldolgozói szerepkör feldolgozhatja azt.

Lásd még

Kérések engedélyezése az Azure Storage-ba
Állapot- és hibakódok
Queue Storage-hibakódok