Obtenir les messagesGet Messages

L'opération Get Messages récupère un ou plusieurs messages du début de la file d'attente.The Get Messages operation retrieves one or more messages from the front of the queue.

RequêteRequest

La demande Get Messages peut être construite comme indiqué ci-dessous.The Get Messages request may be constructed as follows. HTTPS est recommandé.HTTPS is recommended. Remplacez moncompte par le nom de votre compte de stockage et myqueue par le nom de votre file d'attente :Replace myaccount with the name of your storage account, and myqueue with the name of your queue:

MéthodeMethod URI de demandeRequest URI Version HTTPHTTP Version
GET https://myaccount.queue.core.windows.net/myqueue/messages HTTP/1.1HTTP/1.1

URI du service de stockage émuléEmulated storage service URI

Lorsque vous élaborez une demande pour le service de stockage émulé, spécifiez le nom d'hôte de l'émulateur et le port de service de File d'attente sous la forme 127.0.0.1:10001, suivi du nom de compte de stockage émulé :When making a request against the emulated storage service, specify the emulator hostname and Queue service port as 127.0.0.1:10001, followed by the emulated storage account name:

MéthodeMethod URI de demandeRequest URI Version HTTPHTTP Version
GET http://127.0.0.1:10001/devstoreaccount1/myqueue/messages HTTP/1.1HTTP/1.1

Paramètres URIURI Parameters

Les paramètres supplémentaires suivants peuvent être spécifiés dans l'URI de la demande.The following additional parameters may be specified on the request URI.

ParamètreParameter DescriptionDescription
numofmessages facultatif.Optional. 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.A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. Si le nombre de messages est inférieur, tous les messages visibles sont retournés.If fewer are visible, the visible messages are returned. Par défaut, cette opération ne récupère qu'un seul message de la file d'attente.By default, a single message is retrieved from the queue with this operation.
visibilitytimeout facultatif.Optional. Spécifie la nouvelle valeur du délai de visibilité, en secondes, par rapport au temps serveur.Specifies the new visibility timeout value, in seconds, relative to server time. La valeur par défaut est de 30 secondes.The default value is 30 seconds.

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 à la version 2011-08-18.A specified value must be larger than or equal to 1 second, and cannot be larger than 7 days, or larger than 2 hours on REST protocol versions prior to version 2011-08-18. Le délai d'expiration de la visibilité d'un message peut être défini à une valeur ultérieure au délai d'expiration.The visibility timeout of a message can be set to a value later than the expiry time.
timeout facultatif.Optional. Le paramètre timeout est exprimé en secondes.The timeout parameter is expressed in seconds. Pour plus d’informations, consultez définition de délais d’attente pour les opérations de service de file d’attente.For more information, see Setting Timeouts for Queue Service Operations.

En-têtes de requêteRequest Headers

Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.The following table describes required and optional request headers.

En-tête de la demandeRequest Header DescriptionDescription
Authorization Obligatoire.Required. Spécifie le schéma d’autorisation, le nom de compte et la signature.Specifies the authorization scheme, account name, and signature. Pour plus d’informations, consultez autoriser les demandes dans le stockage Azure.For more information, see Authorize requests to Azure Storage.
Date ou x-ms-dateDate or x-ms-date Obligatoire.Required. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête.Specifies the Coordinated Universal Time (UTC) for the request. Pour plus d’informations, consultez autoriser les demandes dans le stockage Azure.For more information, see Authorize requests to Azure Storage.
x-ms-version facultatif.Optional. Spécifie la version de l'opération à utiliser pour cette demande.Specifies the version of the operation to use for this request. Pour plus d’informations, consultez contrôle de version pour les services de stockage Azure.For more information, see Versioning for the Azure Storage Services.
x-ms-client-request-id facultatif.Optional. Fournit une valeur opaque générée par le client avec une limite de 1 Kio de caractères qui est enregistrée dans les journaux d’analyse lorsque la journalisation de l’analyse de stockage est activée.Provides a client-generated, opaque value with a 1 KiB character limit that is recorded in the analytics logs when storage analytics logging is enabled. L’utilisation de cet en-tête est fortement recommandée pour la mise en corrélation des activités côté client avec les requêtes reçues par le serveur.Using this header is highly recommended for correlating client-side activities with requests received by the server. Pour plus d’informations, consultez à propos de la journalisation des Storage Analytics et de la journalisation Azure : utilisation des journaux pour suivre les demandes de stockage.For more information, see About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests.

Corps de la demandeRequest Body

Aucun.None.

responseResponse

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.The response includes an HTTP status code and a set of response headers.

Code d’étatStatus Code

Une opération réussie envoie le code d'état 200 (OK).A successful operation returns status code 200 (OK).

Pour plus d’informations sur les codes d’État, consultez codes d’État et d’erreur.For information about status codes, see Status and Error Codes.

En-têtes de réponseResponse Headers

La réponse de l'opération inclut les en-têtes suivants.The response for this operation includes the following headers. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires.The response may also include additional standard HTTP headers. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.All standard headers conform to the HTTP/1.1 protocol specification.

En-tête de réponseResponse header DescriptionDescription
x-ms-request-id Cet en-tête identifie de façon unique la demande qui a été effectuée et peut être utilisé pour résoudre les problèmes de la demande.This header uniquely identifies the request that was made and can be used for troubleshooting the request. Pour plus d’informations, consultez Troubleshooting API Operations.For more information, see Troubleshooting API Operations.
x-ms-version Indique la version du service de File d'attente utilisé pour exécuter la demande.Indicates the version of the Queue service used to execute the request. Cet en-tête est renvoyé pour les demandes effectuées avec la version 2009-09-19 ou une version ultérieure.This header is returned for requests made against version 2009-09-19 and later.
Date Une valeur de date/heure UTC générée par le service qui indique le moment auquel la réponse a été initiée.A UTC date/time value generated by the service that indicates the time at which the response was initiated.
x-ms-client-request-id Cet en-tête peut être utilisé pour dépanner les demandes et les réponses correspondantes.This header can be used to troubleshoot requests and corresponding responses. La valeur de cet en-tête est égale à la valeur de l' x-ms-client-request-id en-tête si elle est présente dans la demande et que la valeur est supérieure à 1024 caractères ASCII visibles.The value of this header is equal to the value of the x-ms-client-request-id header if it is present in the request and the value is at most 1024 visible ASCII characters. Si l' x-ms-client-request-id en-tête n’est pas présent dans la demande, cet en-tête ne sera pas présent dans la réponse.If the x-ms-client-request-id header is not present in the request, this header will not be present in the response.

Corps de la réponseResponse Body

La réponse XML pour l'opération Get Messages est renvoyée au format suivant.The response XML for the Get Messages operation is returned in the following format.

L'élément MessageID est une valeur GUID qui identifie le message dans la file d'attente.The MessageID element is a GUID value that identifies the message in the queue. Cette valeur est assignée au message par le service de File d'attente et est opaque au client.This value is assigned to the message by the Queue service and is opaque to the client. Cette valeur peut être utilisée avec la valeur de l'élément PopReceipt pour supprimer un message de la file d'attente après qu'il a été récupéré par l'opération Get Messages.This value may be used together with the value of the PopReceipt element to delete a message from the queue after it has been retrieved with the Get Messages operation. 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 de Suppression de message .The value of PopReceipt is also opaque to the client; its only purpose is to ensure that a message may be deleted with the Delete Message operation.

Les éléments InsertionTime, ExpirationTime et TimeNextVisible sont représentés en valeurs UTC et mis en forme selon la RFC 1123.The InsertionTime, ExpirationTime, and TimeNextVisible elements are represented as UTC values and formatted as described in RFC 1123.

L'élément DequeueCount a une valeur de 1 la première fois que le message est dépilé.The DequeueCount element has a value of 1 the first time the message is dequeued. Cette valeur est incrémentée chaque fois que le message est dépilé.This value is incremented each time the message is subsequently dequeued.

Notes

L'élément DequeueCount est renvoyé dans le corps de la réponse uniquement si la file d'attente a été créée avec la version du 19/09/2009 du service de File d'attente.The DequeueCount element is returned in the response body only if the queue was created with version 2009-09-19 of the Queue service.

<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éponseSample Response

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>  

AutorisationAuthorization

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.This operation can be performed by the account owner and by anyone with a shared access signature that has permission to perform this operation.

RemarquesRemarks

Le contenu du message est récupéré dans le format utilisé pour l’opération put message .The message content is retrieved in whatever format was used for the Put Message operation.

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.When a message is retrieved from the queue, the response includes the message and a pop receipt value, which is required to delete the message. Le message n'est pas automatiquement supprimé de la file d'attente, mais après qu'il a été récupéré, il n'est pas visible à d'autres clients pendant l'intervalle de temps spécifié par le paramètre visibilitytimeout.The message is not automatically deleted from the queue, but after it has been retrieved, it is not visible to other clients for the time interval specified by the visibilitytimeout parameter.

Si plusieurs messages sont récupérés, chaque message a un accusé réception pop associé.If multiple messages are retrieved, each message has an associated pop receipt. Le nombre maximal de messages qui peuvent être récupérés à un moment donné est égal à 32.The maximum number of messages that may be retrieved at a time is 32.

Le client qui récupère le message doit le supprimer après qu'il a été traité, et avant la durée spécifiée par l'élément TimeNextVisible de la réponse, calculée en fonction de la valeur du paramètre visibilitytimeout.The client that retrieves the message is expected to delete the message after it has been processed, and before the time specified by the TimeNextVisible element of the response, which is calculated based on the value of the visibilitytimeout parameter. La valeur de visibilitytimeout est ajoutée à l'heure à laquelle le message est récupéré pour déterminer la valeur TimeNextVisible.The value of visibilitytimeout is added to the time at which the message is retrieved to determine the value of TimeNextVisible.

Un message récupéré avec un certain visibilitytimeout peut réapparaître avant l'expiration de ce délai, en raison des variations d'horloge.A message that is retrieved with a certain visibilitytimeout can reappear again before that specified timeout has elapsed, due to clock skew. Remarque : un client peut déduire qu'un message a déjà été dépilé par un autre client d'après l'accusé de réception pop, qui est unique pour chaque dépilage d'un message.Note that a client could infer that a message has already been dequeued by a different client based on the pop receipt, which is unique for each dequeueing of a message. Si l'accusé de réception pop d'un client ne fonctionne plus pour supprimer ou mettre à jour un message, et que le client reçoit une erreur 404 (Introuvable), cela signifie que le message a été dépilé par un autre client.If a client’s pop receipt no longer works to delete or update a message, and the client receives a 404 (Not Found) error, then the message has been dequeued by another client.

Lorsqu'un client récupère un message via Get Messages, celui-ci est généralement réservé pour la suppression jusqu'à ce que l'intervalle visibilitytimeout expire, mais ce comportement n'est pas garanti.Typically, when a consumer retrieves a message via Get Messages, that message is usually reserved for deletion until the visibilitytimeout interval expires, but this behavior is not guaranteed. Une fois l'intervalle visibilitytimeout expiré, le message est de nouveau visible par d'autres utilisateurs.After the visibilitytimeout interval expires, the message again becomes visible to other consumers. Si le message n'est pas ensuite récupéré et n'est pas supprimé par un autre consommateur, le consommateur d'origine peut supprimer le message en utilisant l'accusé de réception pop d'origine.If the message is not subsequently retrieved and deleted by another consumer, the original consumer can delete the message using the original pop receipt.

Quand un message est récupéré pour la première fois, sa propriété DequeueCount est définie à 1.When a message is retrieved for the first time, its DequeueCount property is set to 1. Si elle n'est pas supprimée et qu'elle est ensuite récupérée, la propriété DequeueCount est incrémentée.If it is not deleted and is subsequently retrieved again, the DequeueCount property is incremented. Le client peut utiliser cette valeur pour déterminer combien de fois un message a été récupéré.The client may use this value to determine how many times a message has been retrieved.

Si le paramètre visiblitytimeout ou numofmessages est hors limites, le service renvoie le code d'état 400 (Demande incorrecte), ainsi que des informations supplémentaires sur l'erreur, comme indiqué dans l'exemple suivant.If the visiblitytimeout or numofmessages parameter is out of range, the service returns status code 400 (Bad Request), along with additional error information, as shown in the following example.

  
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 aussiSee also

Codes d’erreur du service de file d’attente Queue Service Error Codes
Autoriser les demandes au stockage Azure Authorize requests to Azure Storage
Codes d’État et d’erreurStatus and Error Codes