Mise à jour de message
L'opération Update Message
met à jour le délai d'expiration de la visibilité d'un message. Vous pouvez également utiliser cette opération pour mettre à jour le contenu d'un message. Un message doit être dans un format qui peut être inclus dans une requête XML avec un encodage UTF-8, et le message encodé peut avoir une taille maximale de 64 Ko. Cette opération a été introduite avec la version 2011-08-18 de l’API Stockage File d’attente Azure.
Requête
Vous pouvez construire la Update Message
requête comme suit. HTTPS est recommandé. Remplacez myaccount par le nom de votre compte de stockage et myqueue par le nom de votre file d’attente.
Méthode | URI de demande | Version HTTP |
---|---|---|
PUT |
https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
Service de stockage émulé
Cette opération est prise en charge pour le SDK 1.6 et les versions ultérieures.
Lorsque vous effectuez une demande auprès du service de stockage émulé, spécifiez le nom d’hôte de l’émulateur et le port de stockage file d’attente comme 127.0.0.1:10001
, suivis du nom du compte de stockage émulé.
Méthode | URI de demande | Version HTTP |
---|---|---|
PUT |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
Paramètres URI
Vous pouvez spécifier les paramètres suivants sur l’URI de requête.
Paramètre | Description |
---|---|
popreceipt |
Obligatoire. Spécifie la valeur de réception contextuelle valide retournée à partir d’un appel antérieur aux opérations Obtenir des messages ou Mettre à jour un message . Doit popreceipt être encodé en URL. |
visibilitytimeout |
Obligatoire. Spécifie la nouvelle valeur du délai de visibilité, en secondes, par rapport au temps serveur. La nouvelle valeur doit être supérieure ou égale à 0 et ne peut pas être supérieure à 7 jours. Le délai de visibilité d’un message ne peut pas être défini sur une valeur postérieure à l’heure d’expiration. Vous pouvez mettre à jour un message jusqu’à ce qu’il ait été supprimé ou qu’il ait expiré. |
timeout |
Optionnel. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez Définition des délais d’expiration pour les opérations de stockage file d’attente. |
En-têtes de requête
Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.
En-tête de requête | Description |
---|---|
Authorization |
Obligatoire. Spécifie le schéma d’autorisation, le nom du compte et la signature. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
Date or x-ms-date |
Obligatoire. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
x-ms-version |
Nécessite la version 2011-08-18 ou ultérieure. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft Azure. |
x-ms-client-request-id |
Optionnel. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (Kio) enregistrée dans les journaux lors de la configuration de la journalisation. Nous vous recommandons vivement d’utiliser cet en-tête pour mettre en corrélation les activités côté client avec les demandes que le serveur reçoit. Pour plus d’informations, consultez Surveiller le stockage File d’attente Azure. |
Corps de la demande
Le corps de la demande contient les données du message au format XML suivant. Notez que le contenu du message doit être dans un format qui peut être encodé avec UTF-8.
<QueueMessage>
<MessageText>message-content</MessageText>
</QueueMessage>
response
La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.
Code d’état
Une opération réussie renvoie le code d'état 204 (Aucun contenu). Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.
En-têtes de réponse
La réponse de l'opération inclut les en-têtes suivants. La réponse peut également inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.
En-tête de requête | Description |
---|---|
x-ms-request-id |
Cet en-tête identifie de manière unique la requête qui a été effectuée et peut être utilisé pour la résolution des problèmes de la demande. Pour plus d’informations, consultez Résolution des problèmes liés aux opérations d’API. |
x-ms-version |
Indique la version du stockage file d’attente utilisée pour exécuter la requête. Cet en-tête est renvoyé pour les demandes effectuées avec la version 2009-09-19 ou une version ultérieure. |
Date |
Valeur de date/heure UTC qui indique l’heure à laquelle la réponse a été lancée. Le service génère cette valeur. |
x-ms-popreceipt |
L'accusé de réception pop du message de la file d'attente. |
x-ms-time-next-visible |
Une valeur date/d'heure UTC qui indique quand le message sera visible dans la file d'attente. |
x-ms-client-request-id |
Vous pouvez utiliser cet en-tête pour résoudre les problèmes liés aux demandes et aux réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id , s’il est présent dans la requête. La valeur est au maximum de 1 024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la demande, cet en-tête ne sera pas présent dans la réponse. |
Response body
Aucun.
Autorisation
Le propriétaire du compte peut effectuer cette opération. En outre, toute personne disposant d’une signature d’accès partagé et autorisée à effectuer cette opération peut le faire.
Exemple de requête et de réponse
La demande suivante étend la visibilité d'un message de file d'attente de 30 secondes et met à jour son contenu.
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 demande est envoyée avec les en-têtes suivants :
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 demande est envoyée avec le corps XML suivant :
<QueueMessage>
<MessageText>new-message-content</MessageText>
</QueueMessage>
Une fois la demande envoyée, la réponse suivante est renvoyée :
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
Notes
Une Update Message
opération échoue si le message spécifié n’existe pas dans la file d’attente, ou si la réception contextuelle spécifiée ne correspond pas au message.
Un accusé de réception pop est renvoyé par l'opération Get Messages
ou par l'opération Update Message
. Les accusés de réception pop restent valides jusqu'à ce que l'un des événements suivants se produise :
Le message expire.
Le message a été supprimé à l’aide du dernier reçu contextuel reçu, à partir de
Get Messages
ouUpdate Message
.La durée d'invisibilité est passée et le message a été dépilé par une demande
Get Messages
. Lorsque la durée d'invisibilité est passée, le message est de nouveau visible. S’il est récupéré par une autreGet Messages
demande, le reçu contextuel retourné peut être utilisé pour supprimer ou mettre à jour le message.Le message a été mis à jour avec un nouveau délai de visibilité. Lorsque le message est mis à jour, un nouvel accusé de réception pop est renvoyé.
Vous pouvez utiliser l’opération Update Message
pour étendre continuellement l’invisibilité d’un message de file d’attente. Cette fonctionnalité peut être utile si vous souhaitez qu’un rôle de travail loue un message de file d’attente. Par exemple, si un rôle de travail appelle Obtenir des messages et reconnaît qu’il a besoin de plus de temps pour traiter un message, il peut étendre continuellement l’invisibilité du message jusqu’à ce qu’il soit traité. Si le rôle de travail échoue pendant le traitement, le message redevient visible à nouveau et un autre rôle de travail peut le traiter.
Voir aussi
Autoriser les demandes dans le Stockage Azure
Codes d’état et d’erreur
Codes d’erreur de stockage de file d’attente