Aggiornamento del messaggio
Tramite l'operazione Update Message
viene aggiornato il timeout di visibilità di un messaggio. È anche possibile usare questa operazione per aggiornare il contenuto di un messaggio. Un messaggio deve essere in un formato che può essere incluso in una richiesta XML con codifica UTF-8 e il messaggio codificato può avere dimensioni fino a 64 KB. Questa operazione è stata introdotta con la versione 2011-08-18 dell'API di archiviazione code di Azure.
Richiesta
È possibile costruire la Update Message
richiesta come indicato di seguito. È consigliato il protocollo HTTPS. Sostituire myaccount con il nome dell'account di archiviazione e myqueue con il nome della coda.
Metodo | URI richiesta | Versione HTTP |
---|---|---|
PUT |
https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
Servizio di archiviazione emulato
Questa operazione è supportata per SDK 1.6 e versioni successive.
Quando si effettua una richiesta per il servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta di archiviazione code come 127.0.0.1:10001
, seguito dal nome dell'account di archiviazione emulato.
Metodo | URI richiesta | Versione HTTP |
---|---|---|
PUT |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
Parametri URI
È possibile specificare i parametri seguenti nell'URI della richiesta.
Parametro | Descrizione |
---|---|
popreceipt |
Obbligatorio. Specifica il valore di ricevuta pop valido restituito da una chiamata precedente alle operazioni Get Messages o Update Message . Deve popreceipt essere codificato con URL. |
visibilitytimeout |
Obbligatorio. Specifica il nuovo valore di timeout di visibilità, in secondi, rispetto all'ora del server. Il nuovo valore deve essere maggiore o uguale a 0 e non può essere maggiore di 7 giorni. Il timeout di visibilità di un messaggio non può essere impostato su un valore successivo all'ora di scadenza. È possibile aggiornare un messaggio fino a quando non è stato eliminato o scaduto. |
timeout |
Facoltativa. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione dei timeout per le operazioni di archiviazione code. |
Intestazioni della richiesta
Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative.
Intestazione della richiesta | Descrizione |
---|---|
Authorization |
Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
Date or x-ms-date |
Obbligatorio. Specifica la data per la richiesta nel fuso orario UTC (Coordinated Universal Time). Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
x-ms-version |
Richiede 2011-08-18 o versione successiva. Specifica la versione dell'operazione da usare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure. |
x-ms-client-request-id |
Facoltativa. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log al momento della configurazione della registrazione. È consigliabile usare questa intestazione per correlare le attività lato client alle richieste ricevute dal server. Per altre informazioni, vedere Monitorare l'archiviazione code di Azure. |
Testo della richiesta
Il corpo della richiesta contiene i dati di messaggio nel seguente formato XML. Si noti che il contenuto del messaggio deve essere in un formato che può essere codificato con UTF-8.
<QueueMessage>
<MessageText>message-content</MessageText>
</QueueMessage>
Risposta
Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.
Codice stato
Un'operazione completata correttamente restituisce il codice di stato 204 (Nessun contenuto). Per informazioni sui codici di stato, vedere Codici di stato e di errore.
Intestazioni di risposta
Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; La risposta può includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.
Intestazione della richiesta | Descrizione |
---|---|
x-ms-request-id |
Questa intestazione identifica in modo univoco la richiesta effettuata e può essere usata per la risoluzione dei problemi della richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni api. |
x-ms-version |
Indica la versione di Archiviazione code usata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive. |
Date |
Valore di data/ora UTC che indica l'ora in cui è stata avviata la risposta. Il servizio genera questo valore. |
x-ms-popreceipt |
Valore di ricezione POP del messaggio in coda. |
x-ms-time-next-visible |
Valore data/ora UTC che indica quando il messaggio sarà visibile nella coda. |
x-ms-client-request-id |
È possibile usare questa intestazione per risolvere i problemi relativi alle richieste e alle risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id , se presente nella richiesta. Il valore è al massimo 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, questa intestazione non sarà presente nella risposta. |
Corpo della risposta
Nessuno.
Autorizzazione
Il proprietario dell'account può eseguire questa operazione. Inoltre, chiunque disponga di una firma di accesso condiviso autorizzato a eseguire questa operazione può farlo.
Richiesta e risposta di esempio
La richiesta successiva estende la visibilità di un messaggio in coda di 30 secondi e ne aggiorna il contenuto.
PUT https://myaccount.queue.core.windows.net/myqueue/messages/663d89aa-d1d9-42a2-9a6a-fcf822a97d2c?popreceipt=AgAAAAEAAAApAAAAGIw6Q29bzAE%3d&visibilitytimeout=30&timeout=30 HTTP/1.1
La richiesta viene inviata con le intestazioni seguenti:
x-ms-version: 2011-08-18
x-ms-date: Mon, 29 Aug 2011 17:17:21 GMT
Authorization: SharedKey myaccount:batcrWZ35InGCZeTUFWMdIQiOZPCW7UEyeGdDOg7WW4=
Content-Length: 75
La richiesta viene inviata con il corpo XML seguente:
<QueueMessage>
<MessageText>new-message-content</MessageText>
</QueueMessage>
Dopo l'invio della richiesta viene restituita la risposta seguente:
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
Commenti
Un'operazione Update Message
ha esito negativo se il messaggio specificato non esiste nella coda o se la ricevuta pop specificata non corrisponde al messaggio.
Un valore di ricezione POP viene restituito dall'operazione Get Messages
o Update Message
. I valori di ricezione rimangono validi finché non si verifica uno dei seguenti eventi:
Il messaggio è scaduto.
Il messaggio è stato eliminato utilizzando l'ultima ricevuta pop ricevuta, da
Get Messages
oUpdate Message
.Il timeout di invisibilità è scaduto e il messaggio è stato rimosso dalla coda tramite una richiesta
Get Messages
. Scaduto il timeout di invisibilità, il messaggio diventa nuovamente visibile. Se viene recuperato da un'altraGet Messages
richiesta, è possibile usare la ricevuta pop restituita per eliminare o aggiornare il messaggio.Il messaggio è stato aggiornato con un nuovo timeout di visibilità. Se il messaggio viene aggiornato, viene restituito un nuovo valore di ricezione.
È possibile usare l'operazione Update Message
per estendere continuamente l'invisibilità di un messaggio in coda. Questa funzionalità può essere utile se si vuole che un ruolo di lavoro lease un messaggio di coda. Ad esempio, se un ruolo di lavoro chiama Recupera messaggi e riconosce che richiede più tempo per elaborare un messaggio, può estendere continuamente l'invisibilità del messaggio fino a quando non viene elaborata. Se il ruolo di lavoro non riesce durante l'elaborazione, alla fine il messaggio diventa nuovamente visibile e un altro ruolo di lavoro può elaborarlo.
Vedi anche
Autorizzare le richieste ad Archiviazione di Azure
Stato e codici errore
Codici di errore di Archiviazione code