Utilisation des messages
Consommer les messages d'une file d'attente et de ses canaux.
L'utilisation des messages nécessite des droits d'accès à la file d'attente et un accès à son adresse de messages.
Une réponse à une demande GetMessages
contient la liste des messages avec leur charge utile, ID, délai d'expiration, délai d'expiration de visibilité, nombre de distributions et un en-tête de réception (receipt
). Le nombre maximal de messages pouvant être renvoyés dans une réponse est de 20, mais le nombre réel de messages renvoyés dépend du nombre de messages disponibles et du fait que la demande a utilisé une interrogation longue.
Les destinataires sont responsables de la mise à jour et de la suppression des messages, qui nécessitent l'en-tête de réception (receipt
) des messages.
Verrouillage de message
Les destinataires peuvent "verrouiller" un message extrait d'une file d'attente de sorte qu'un autre destinataire ne puisse pas extraire le même message. Les messages sont verrouillés en spécifiant un délai d'expiration de visibilité. L'API Queue utilise le paramètre visibilityInSeconds
pour définir cette valeur.
Le délai d'expiration de visibilité peut être défini au niveau de la file d'attente lors de la création d'une file d'attente, ou être spécifié lors de l'utilisation ou de la mise à jour des messages. Si un destinataire a des difficultés à traiter un message, il peut le mettre à jour pour prolonger son invisibilité. Si le délai d'expiration de visibilité d'un message n'est pas prolongé et que le consommateur ne supprime pas le message, il revient dans la file d'attente.
Lors de l'utilisation, vous n'avez pas besoin de spécifier de délai d'expiration de visibilité. Le délai d'expiration de visibilité configuré pour la file d'attente s'applique à la demande. Lors de la création d'une file d'attente, le délai d'expiration de visibilité par défaut est de 30 secondes. Si vous incluez le paramètre facultatif de délai d'expiration de visibilité dans une demande, vous pouvez spécifier une valeur minimale de 0 seconde et une valeur maximale de 12 heures.
L'utilisation d'un délai d'expiration de visibilité dont la valeur est 0 sert de fonctionnalité d'aperçu. Les messages extraits de cette manière seront probablement distribués à un autre destinataire car leur visibilité ne change pas.
Nombre de distributions
Chaque fois qu'un message est extrait à l'aide d'une demande GetMessages
ou par interrogation de la console, son nombre de distributions augmente. Si le nombre de distributions dépasse la valeur maximale configurée de la file d'attente, le message est envoyé à la file d'attente de lettres mortes.
Interrogation longue
Par défaut, une demande GetMessages
utilise l'interrogation longue. La demande attend des messages pendant 30 secondes et, si le délai d'expiration s'écoule et qu'aucun message n'est disponible pour utilisation, elle renvoie une réponse vide. L'interrogation longue est utile pour empêcher les nouvelles tentatives de boucle serrée sur les réponses vides.
Les consommateurs peuvent modifier ce comportement en incluant le paramètre timeoutInSeconds
dans leur demande, qui accepte des valeurs de 0 à 30 secondes. La définition de la valeur timeoutInSeconds
sur 0 entraîne une réponse immédiate de la file d'attente, que des messages soient disponibles ou non.