Partager via


Obtenir les messages

L'opération Get Messages récupère un ou plusieurs messages du début de la file d'attente.

Requête

La demande Get Messages peut être construite comme indiqué ci-dessous. Nous vous recommandons d’utiliser HTTPS. Remplacez myaccount par le nom de votre compte de stockage et remplacez par myqueue le nom de votre file d’attente :

Méthode URI de demande Version HTTP
GET https://myaccount.queue.core.windows.net/myqueue/messages HTTP/1.1

Demande de service de stockage émulée

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 Azure en tant que 127.0.0.1:10001, suivis du nom du compte de stockage émulé :

Méthode URI de demande Version HTTP
GET http://127.0.0.1:10001/devstoreaccount1/myqueue/messages HTTP/1.1

Pour plus d’informations, consultez Utiliser l’émulateur Azurite à des fins de développement local pour Stockage Azure.

Paramètres URI

Les paramètres supplémentaires suivants peuvent être spécifiés dans l'URI de la demande.

Paramètre Description
numofmessages facultatif. Une valeur entière différente de zéro qui spécifie le nombre de messages à récupérer de la file d'attente, avec un maximum de 32. Si moins de messages sont visibles, les messages visibles sont retournés. Par défaut, cette opération ne récupère qu'un seul message de la file d'attente.
visibilitytimeout Optionnel. Spécifie la nouvelle valeur de délai d’attente de visibilité, en secondes, par rapport à l’heure du serveur. La valeur par défaut est de 30 secondes.

Une valeur spécifiée doit être supérieure ou égale à 1 seconde et ne peut pas être supérieure à 7 jours ou supérieure à 2 heures sur les versions du protocole REST antérieures à 2011-08-18. Le délai de visibilité d’un message peut être défini sur une valeur postérieure à l’heure d’expiration.
timeout Optionnel. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez Définir des délais d’attente pour les opérations de stockage file d’attente Azure.

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 ou 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 Optionnel. 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

Aucun.

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 envoie le code d'état 200 (OK).

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 aussi 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 réponse Description
x-ms-request-id Identifie de manière unique la demande qui a été effectuée et peut être utilisée pour résoudre la demande. Pour plus d’informations, consultez Résoudre les problèmes liés aux opérations d’API.
x-ms-version Indique la version de Stockage File d’attente Azure qui a été utilisée pour exécuter la demande. Cet en-tête est retourné pour les demandes effectuées sur la version 2009-09-19 et ultérieure.
Date Valeur de date/heure UTC générée par le service, qui indique l’heure à laquelle la réponse a été lancée.
x-ms-client-request-id Peut être utilisé 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 et que la valeur ne contient pas plus 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, il ne sera pas présent dans la réponse.

Response body

La réponse XML pour l'opération Get Messages est renvoyée au format suivant.

L'élément MessageID est une valeur GUID qui identifie le message dans la file d'attente. Cette valeur est affectée au message par stockage file d’attente Azure et est opaque pour le client. Vous pouvez utiliser la valeur avec la valeur de l’élément PopReceipt pour supprimer un message de la file d’attente après l’avoir récupéré à l’aide de l’opération Get Messages . La valeur de PopReceipt est également opaque pour le client. Son seul objectif est de s’assurer qu’un message peut être supprimé avec l’opération Supprimer le message .

Les éléments InsertionTime, ExpirationTime et TimeNextVisible sont représentés en valeurs UTC et mis en forme selon la RFC 1123.

L'élément DequeueCount a une valeur de 1 la première fois que le message est dépilé. Cette valeur est incrémentée chaque fois que le message est dépilé.

Notes

L’élément DequeueCount est retourné dans le corps de la réponse uniquement si la file d’attente a été créée à l’aide du stockage File d’attente Azure version 2009-09-19.

<QueueMessagesList>  
    <QueueMessage>  
      <MessageId>string-message-id</MessageId>  
      <InsertionTime>insertion-time</InsertionTime>  
      <ExpirationTime>expiration-time</ExpirationTime>  
      <PopReceipt>opaque-string-receipt-data</PopReceipt>  
      <TimeNextVisible>time-next-visible</TimeNextVisible>  
      <DequeueCount>integer</DequeueCount>  
      <MessageText>message-body</MessageText>  
    </QueueMessage>  
</QueueMessagesList>  

Exemple de réponse

Response Status:  
HTTP/1.1 200 OK  
Response Headers:  
Transfer-Encoding: chunked  
Content-Type: application/xml  
Date: Fri, 16 Sep 2011 21:04:30 GMT  
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0  
  
Response Body:  
<?xml version="1.0" encoding="utf-8"?>  
<QueueMessagesList>  
  <QueueMessage>  
    <MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId>  
    <InsertionTime>Fri, 09 Oct 2009 21:04:30 GMT</InsertionTime>  
    <ExpirationTime>Fri, 16 Oct 2009 21:04:30 GMT</ExpirationTime>  
    <PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>  
    <TimeNextVisible>Fri, 09 Oct 2009 23:29:20 GMT</TimeNextVisible>  
    <DequeueCount>1</DequeueCount>  
    <MessageText>PHRlc3Q+dGhpcyBpcyBhIHRlc3QgbWVzc2FnZTwvdGVzdD4=</MessageText>  
  </QueueMessage>  
</QueueMessagesList>  

Autorisation

Cette opération peut être exécutée par le propriétaire du compte et par toute personne qui dispose d'une signature d'accès partagé qui a l'autorisation d'exécuter cette opération.

Notes

Le contenu du message est récupéré dans le format utilisé pour l’opération Put Message .

Lorsqu'un message est récupéré à partir de la file d'attente, la réponse inclut le message et une valeur d'accusé pop, nécessaire à la suppression du message. Le message n’est pas automatiquement supprimé de la file d’attente, mais une fois récupéré, il n’est pas visible pour les autres clients pendant l’intervalle de temps spécifié par le visibilitytimeout paramètre .

Si plusieurs messages sont récupérés, chaque message a un accusé réception pop associé. Le nombre maximal de messages pouvant être récupérés en même temps est de 32.

Le client qui récupère le message est censé supprimer le message après son traitement et avant l’heure spécifiée par l’élément TimeNextVisible de la réponse, qui est calculée en fonction de la visibilitytimeout valeur du paramètre . La valeur de visibilitytimeout est ajoutée au moment où le message est récupéré pour déterminer la valeur de TimeNextVisible.

En raison de l’asymétrie de l’horloge, un message récupéré avec un certain visibilitytimeout peut réapparaître avant l’expiration du délai d’attente spécifié. Notez qu’un client peut déduire qu’un message a déjà été supprimé de la file d’attente par un autre client en fonction du reçu contextuel, qui est unique pour chaque retrait d’une file d’attente d’un message. Si le reçu contextuel d’un client ne fonctionne plus pour supprimer ou mettre à jour un message, et que le client reçoit une erreur 404 (introuvable), le message a été supprimé de la file d’attente par un autre client.

En règle générale, lorsqu’un consommateur récupère un message via Get Messages, ce message est réservé à la suppression jusqu’à l’expiration de l’intervalle de temps de visibilité . Mais ce comportement n’est pas garanti. Une fois l'intervalle visibilitytimeout expiré, le message est de nouveau visible par d'autres utilisateurs. Si le message n’est pas récupéré et supprimé par la suite par un autre consommateur, le consommateur d’origine peut supprimer le message à l’aide du reçu contextuel d’origine.

Quand un message est récupéré pour la première fois, sa propriété DequeueCount est définie à 1. Si elle n’est pas supprimée et qu’elle est récupérée par la suite, la DequeueCount propriété est incrémentée. Le client peut utiliser cette valeur pour déterminer combien de fois un message a été récupéré.

Si le paramètre visibilitytimeout ou numofmessages est hors limites, le service retourne status code 400 (Requête incorrecte), ainsi que des informations d’erreur supplémentaires, comme illustré dans l’exemple suivant.

  
HTTP/1.1 400 One of the query parameters specified in the request URI is outside the permissible range.  
Connection: Keep-Alive  
Content-Length: 455  
Via: 1.1 TK5-PRXY-22  
Date: Wed, 02 May 2012 19:37:23 GMT  
Content-Type: application/xml  
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: 6a03526c-ca2c-4358-a63a-b5d096988533  
x-ms-version: 2011-08-18  
  
<?xml version="1.0" encoding="utf-8"?>  
   <Error>  
      <Code>OutOfRangeQueryParameterValue</Code>  
      <Message>One of the query parameters specified in the request URI is outside the permissible range.  
               RequestId:6a03526c-ca2c-4358-a63a-b5d096988533  
               Time:2012-05-02T19:37:24.2438463Z  
      </Message>  
     <QueryParameterName>numofmessages</QueryParameterName>  
     <QueryParameterValue>0</QueryParameterValue>  
     <MinimumAllowed>1</MinimumAllowed>  
     <MaximumAllowed>32</MaximumAllowed>  
   </Error>  
  

Voir aussi

Codes d’erreur stockage file d’attente Azure
Autoriser les demandes dans le Stockage Azure
Codes d’état et d’erreur