Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Update Message

 

Questa operazione è stata introdotta con la versione 2011-08-18 dell'API del servizio di accodamento. 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 presentare un formato che ne consenta l'inserimento in una richiesta XML con codifica UTF-8. Il messaggio codificato può raggiungere le dimensioni massime di 64 KB.

La richiesta Update Message può essere costruita come segue. È consigliato il protocollo HTTPS. Sostituire myaccount con il nome dell'account di archiviazione e myqueue con il nome della coda:

Metodo

URI della richiesta

Versione HTTP

PUT

https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds>

HTTP/1.1

Questa opzione è supportata per SDK 1.6 e versioni successive.

Quando si effettua una richiesta nel servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta del servizio di accodamento come 127.0.0.1:10001, seguiti dal nome dell'account di archiviazione emulato:

Metodo

URI della richiesta

Versione HTTP

PUT

http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds>

HTTP/1.1

Nell'URI richiesta è possibile specificare i seguenti parametri.

Parametro

Descrizione

popreceipt

Obbligatorio. Specifica il valore di ricezione POP valido restituito da una chiamata precedente all'operazione Get Messages o Update Message.

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 superiore a 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 finché non scade o non viene eliminato.

timeout

Facoltativa. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione di timeout per le operazioni di servizio di Accodamento.

Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative.

Intestazione della richiesta

Descrizione

Authorization

Obbligatorio. Specifica lo schema di autenticazione, il nome dell'account e la firma. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

Date or x-ms-date

Obbligatorio. Specifica l'ora UTC (Coordinated Universal Time) per la richiesta. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

x-ms-version

Richiede la versione 2011-08-18 o successive. 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 un opaco generato dal client con limite di caratteri pari a 1 KB che viene registrato nei log di analisi quando la registrazione di Analisi archiviazione è abilitata. L'uso di questa intestazione è fortemente consigliato per la correlazione delle attività lato client con le richieste ricevute dal server. Per ulteriori informazioni, vedere Informazioni sulla registrazione di analisi archiviazione e la registrazione di Azure: Utilizzo dei log per tenere traccia delle richieste di archiviazione.

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 codificabile con UTF-8.

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

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Un'operazione completata correttamente restituisce il codice di stato 204 (Nessun contenuto).

Per informazioni sui codici di stato, vedere Lo stato e i codici di errore.

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; inoltre, possono essere incluse 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 risolvere i problemi relativi alla richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi a operazioni dell'API.

x-ms-version

Indica la versione del servizio di accodamento usata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive.

Date

Valore data/ora UTC generato dal servizio che indica l'ora in cui è stata avviata la risposta.

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.

Questa operazione può essere eseguita dal proprietario dell'account e da qualsiasi altro utente che usa una firma di accesso condiviso con l'autorizzazione di esecuzione di questa operazione.

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

Un'operazione Update Message avrà esito negativo se il messaggio specificato non esiste nella coda o se il valore di ricezione POP specificato 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:

  1. Il messaggio è scaduto.

  2. Il messaggio è stato eliminato usando l'ultimo valore di ricezione ricevuto da Get Messages o Update Message.

  3. 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'altra richiesta Get Messages, il valore di ricezione restituito può essere usato per eliminare o aggiornare il messaggio.

  4. Il messaggio è stato aggiornato con un nuovo timeout di visibilità. Se il messaggio viene aggiornato, viene restituito un nuovo valore di ricezione.

L'operazione Update Message può essere usata per estendere l'invisibilità di un messaggio nella coda. Questa funzionalità può essere utile se si desidera che un ruolo di lavoro imposti un "lease" per un messaggio nella coda. Ad esempio, se un ruolo di lavoro chiama Get Messages e richiede più tempo per l'elaborazione di un messaggio, può estendere l'invisibilità del messaggio finché non viene elaborato. Se il ruolo di lavoro restituisse un errore durante l'elaborazione, il messaggio diventerebbe nuovamente visibile e verrebbe elaborato da un altro ruolo di lavoro.

Mostra: