Atualização de mensagem
A operação Update Message
atualiza o tempo limite de visibilidade de uma mensagem. Você também pode usar essa operação para atualizar o conteúdo de uma mensagem. Uma mensagem deve estar em um formato que possa ser incluído em uma solicitação XML com codificação UTF-8, e a mensagem codificada pode ter até 64 KB de tamanho. Essa operação foi introduzida com a versão 2011-08-18 da API de Armazenamento de Filas do Azure.
Solicitação
Você pode construir a solicitação da Update Message
seguinte maneira. HTTPS é recomendado. Substitua myaccount pelo nome da sua conta de armazenamento e myqueue pelo nome da fila.
Método | URI da solicitação | Versão HTTP |
---|---|---|
PUT |
https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
Serviço de armazenamento emulado
Essa operação tem suporte para o SDK 1.6 e versões posteriores.
Quando você fizer uma solicitação no serviço de armazenamento emulado, especifique o nome do host do emulador e a porta de Armazenamento de Filas como 127.0.0.1:10001
, seguido pelo nome da conta de armazenamento emulado.
Método | URI da solicitação | Versão HTTP |
---|---|---|
PUT |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
Parâmetros do URI
Você pode especificar os seguintes parâmetros no URI de solicitação.
Parâmetro | Descrição |
---|---|
popreceipt |
Obrigatórios. Especifica o valor de recibo pop válido retornado de uma chamada anterior para as operações Obter Mensagens ou Atualizar Mensagem . O popreceipt deve ser codificado em URL. |
visibilitytimeout |
Obrigatórios. Especifica o novo valor de tempo limite de visibilidade, em segundos, em relação à hora do servidor. O novo valor deve ser maior ou igual a 0 e não pode ser maior que 7 dias. O tempo limite de visibilidade de uma mensagem não pode ser definido como um valor posterior ao tempo de expiração. Você pode atualizar uma mensagem até que ela tenha sido excluída ou expirada. |
timeout |
Opcional. O parâmetro timeout é expresso em segundos. Para obter mais informações, consulte Configurando tempos limite para operações de Armazenamento de Filas. |
Cabeçalhos da solicitação
A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.
Cabeçalho da solicitação | Descrição |
---|---|
Authorization |
Obrigatórios. Especifica o esquema de autorização, o nome da conta e a assinatura. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure. |
Date or x-ms-date |
Obrigatórios. Especifica o UTC (Tempo Universal Coordenado) para a solicitação. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure. |
x-ms-version |
Requer 2011-08-18 ou posterior. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure. |
x-ms-client-request-id |
Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres KiB (1 kibibyte) que é registrado nos logs quando o registro em log é configurado. É altamente recomendável que você use esse cabeçalho para correlacionar atividades do lado do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Monitorar o Armazenamento de Filas do Azure. |
Corpo da solicitação
O corpo da solicitação contém os dados da mensagem no seguinte formato XML. Observe que o conteúdo da mensagem deve estar em um formato que possa ser codificado com UTF-8.
<QueueMessage>
<MessageText>message-content</MessageText>
</QueueMessage>
Resposta
A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.
Código de status
Uma operação bem-sucedida retorna o código de status 204 (Sem conteúdo). Para obter informações sobre códigos de status, consulte Códigos de status e de erro.
Cabeçalhos de resposta
A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.
Cabeçalho da solicitação | Descrição |
---|---|
x-ms-request-id |
Esse cabeçalho identifica exclusivamente a solicitação que foi feita e pode ser usado para solucionar problemas da solicitação. Para obter mais informações, consulte Solução de problemas de operações de API. |
x-ms-version |
Indica a versão do Armazenamento de Filas usada para executar a solicitação. Esse cabeçalho é retornado para solicitações feitas na versão 2009-09-19 e mais recente. |
Date |
Um valor de data/hora UTC que indica a hora em que a resposta foi iniciada. O serviço gera esse valor. |
x-ms-popreceipt |
O recebimento de mensagem pop-up de mensagem da fila. |
x-ms-time-next-visible |
Um valor de data/hora UTC que demonstra quando a mensagem se tornará visível na fila. |
x-ms-client-request-id |
Você pode usar esse cabeçalho para solucionar problemas de solicitações e respostas correspondentes. O valor desse cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se ele estiver presente na solicitação. O valor é no máximo 1.024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, esse cabeçalho não estará presente na resposta. |
Corpo da resposta
Nenhum.
Autorização
O proprietário da conta pode executar essa operação. Além disso, qualquer pessoa com uma assinatura de acesso compartilhado que tenha permissão para executar essa operação pode fazer isso.
Exemplo de solicitação e resposta
A solicitação a seguir prorroga a visibilidade de uma mensagem da fila em 30 segundos e atualiza seu conteúdo.
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 solicitação é enviada com os seguintes cabeçalhos:
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 solicitação é enviada com o seguinte corpo XML:
<QueueMessage>
<MessageText>new-message-content</MessageText>
</QueueMessage>
Depois que a solicitação tiver sido enviada, a resposta a seguir será retornada:
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
Comentários
Uma Update Message
operação falhará se a mensagem especificada não existir na fila ou se o recibo pop especificado não corresponder à mensagem.
Um recebimento de mensagem pop-up será retornado pela operação Get Messages
ou Update Message
. Os recebimentos de mensagem pop-up permanecem válidos até que um dos seguintes eventos ocorra:
A mensagem expirou.
A mensagem foi excluída usando o último recibo pop recebido, seja de
Get Messages
ouUpdate Message
.O tempo de invisibilidade expirou, e a mensagem foi removida da fila por uma solicitação
Get Messages
. Quando o tempo de invisibilidade expira, a mensagem se torna visível novamente. Se ele for recuperado por outraGet Messages
solicitação, o recibo pop retornado poderá ser usado para excluir ou atualizar a mensagem.A mensagem foi atualizada com um novo tempo limite da visibilidade. Quando a mensagem for atualizada, um novo recebimento de mensagem pop-up será retornado.
Você pode usar a Update Message
operação para estender continuamente a invisibilidade de uma mensagem de fila. Essa funcionalidade pode ser útil se você quiser que uma função de trabalho aluge uma mensagem de fila. Por exemplo, se uma função de trabalho chamar Obter Mensagens e reconhecer que precisa de mais tempo para processar uma mensagem, ela poderá estender continuamente a invisibilidade da mensagem até que ela seja processada. Se a função de trabalho falhasse durante o processamento, eventualmente a mensagem se tornaria visível novamente e outra função de trabalho poderia processá-la.
Confira também
Autorizar solicitações para o Armazenamento do Azure
Status e códigos de erro
Códigos de erro do Armazenamento de Filas