Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
FIFOlogique de livraison en file d'attente dans Amazon SQS
Les concepts suivants peuvent vous aider à mieux comprendre l'envoi de messages à destination et la réception de messages provenant deFIFO.
- Envoi de messages
-
Si plusieurs messages sont envoyés successivement à une FIFO file d'attente, chacun ayant un identifiant de déduplication distinct, Amazon SQS stocke les messages et accuse réception de leur transmission. Puis, chaque message peut être reçu et traité dans l'ordre exact dans lequel les messages ont été transmis.
Dans les FIFO files d'attente, les messages sont classés en fonction de l'ID du groupe de messages. Si plusieurs hôtes (ou différents fils de discussion sur le même hôte) envoient des messages avec le même ID de groupe de messages à une FIFO file d'attente, Amazon SQS stocke les messages dans l'ordre dans lequel ils arrivent pour traitement. Pour garantir qu'Amazon SQS préserve l'ordre dans lequel les messages sont envoyés et reçus, chaque producteur doit utiliser un identifiant de groupe de messages unique pour envoyer tous ses messages.
FIFOla logique de file d'attente s'applique uniquement par ID de groupe de messages. Chaque ID de groupe de messages représente un groupe de messages ordonné distinct au sein d'une SQS file d'attente Amazon. Pour chaque ID de groupe de messages, tous les messages sont envoyés et reçus en suivant rigoureusement l'ordre établi. Cependant, les messages aux ID de groupe de messages différents pourront être envoyés et reçus dans le désordre. Vous devez associer un ID de groupe de messages à un message. Si vous ne spécifiez pas d'ID de groupe de messages, l'action échoue. Si vous avez besoin d'un seul groupe de messages ordonnés, fournissez le même ID de groupe de messages pour les messages envoyés à la FIFO file d'attente.
- Réception de messages
-
Vous ne pouvez pas demander à recevoir des messages avec un ID de groupe de messages spécifique.
Lorsqu'il reçoit des messages provenant FIFO d'une file d'attente comportant plusieurs groupes de messagesIDs, Amazon essaie d'SQSabord de renvoyer autant de messages que possible avec le même identifiant de groupe de messages. Cela permet aux autres utilisateurs de traiter les messages avec un ID de groupe de messages différent. Lorsque vous recevez un message avec un ID de groupe de messages, aucun autre message correspondant au même ID de groupe de messages n'est renvoyé, sauf si vous supprimez le message ou s'il devient visible.
Note
Il est possible de recevoir jusqu'à 10 messages lors d'un seul appel en utilisant le paramètre de demande
MaxNumberOfMessages
de l'actionReceiveMessage
. Ces messages conservent leur FIFO ordre et peuvent avoir le même identifiant de groupe de messages. Ainsi, s'il y a moins de 10 messages disponibles avec le même identifiant de groupe de messages, il est possible que vous receviez des messages provenant d'un autre identifiant de groupe de messages, dans le même lot de 10 messages, mais toujours dans l'FIFOordre. - Multiples nouvelles tentatives
FIFOles files d'attente permettent au producteur ou au consommateur de tenter plusieurs tentatives :
-
Si le producteur détecte l'échec d'une action
SendMessage
, il peut réessayer d'en envoyer autant de fois que nécessaire, en utilisant le même identifiant de déduplication des messages. En supposant que le producteur reçoive au moins un accusé de réception avant l'expiration de l'intervalle de déduplication, les tentatives multiples n'affectent pas l'ordre des messages et n'introduisent pas de doublons. -
Si le consommateur détecte l'échec d'une action
ReceiveMessage
, il peut réessayer autant de fois que nécessaire, en utilisant le même identifiant de tentative de demande de réception. En supposant que le consommateur reçoive au moins un accusé de réception avant l'expiration du délai de visibilité, les tentatives multiples n'ont aucune incidence sur l'ordre des messages. -
Lorsque vous recevez un message avec un ID de groupe de messages, aucun autre message correspondant au même ID de groupe de messages n'est renvoyé, sauf si vous supprimez le message ou s'il devient visible.
-