Consommation des messages

Consommer les messages d'une file d'attente et de ses canaux.

La consommation de messages nécessite des autorisations pour la file d'attente et l'accès à son point d'extrémité pour les messages.

Une réponse à une demande GetMessages contient la liste des messages avec leurs données utiles, ID message, délai d'expiration, temporisation de visibilité, nombre de transmissions et en-tête receipt. Le nombre maximal de messages pouvant être retournés dans une réponse est de 20, mais le nombre réel de messages retournés dépend du nombre de messages disponibles et de l'utilisation ou non d'une interrogation longue par la demande.

Les consommateurs sont responsables de la mise à jour des messages et de la suppression des messages, qui requièrent l'en-tête receipt du message.

Verrouillage des messages

Les consommateurs peuvent "verrouiller" un message extrait de la file d'attente afin qu'un autre consommateur ne puisse pas extraire le même message. Pour verrouiller des messages, vous spécifiez une temporisation de visibilité. L'API du service de file d'attente utilise le paramètre visibilityInSeconds pour définir cette valeur.

La temporisation de visibilité peut être définie au niveau de la file d'attente lors de la création d'une file d'attente, ou elle peut être spécifiée lors de la consommation ou de la mise à jour des messages. Si un consommateur éprouve des difficultés à traiter un message, il peut le mettre à jour pour prolonger son invisibilité. Si la temporisation de visibilité d'un message n'est pas prolongée et que le consommateur ne supprime pas le message, il retourne à la file d'attente.

Lorsque vous consommez le message, vous n'avez pas besoin de spécifier la temporisation de visibilité. La temporisation de visibilité configurée pour la file d'attente s'applique à la demande. Lors de la création d'une file d'attente, la temporisation de visibilité par défaut est de 30 secondes. Si vous incluez le paramètre de temporisation de visibilité facultatif dans une demande, vous pouvez spécifier une valeur minimale de 0 seconde et une valeur maximale de 12 heures.

L'utilisation d'une temporisation de visibilité de 0 agit efficacement comme une fonctionnalité "peek".. Les messages extraits de cette manière seront très probablement transmis à un autre consommateur, car leur visibilité ne change pas.

Nombre de transmissions

Chaque fois qu'un message est extrait à l'aide d'une demande GetMessages ou par scrutation de la console, son nombre de transmissions augmente. Si le nombre de transmissions dépasse le nombre maximal configuré pour la file d'attente, le message est envoyé dans la file d'attente des messages non distribués.

Scrutation longue

Par défaut, une demande GetMessages utilise une scrutation longue. La demande attend des messages pendant 30 secondes. Si la temporisation expire et qu'aucun message n'est disponible pour consommation, la demande retourne une réponse vide. Une scrutation longue est utile pour empêcher les nouvelles tentatives en boucle infinie 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. Le réglage de la valeur timeoutInSeconds à 0 entraîne une réponse immédiate de la file d'attente, qu'il y ait ou non des messages disponibles.