Tous les produits
Search
Centre de documentation

:Preventing message loss or duplicate consumption in Simple Message Queue (formerly MNS)

Dernière mise à jour :Aug 10, 2026

Lorsque plusieurs consommateurs récupèrent des messages depuis une même file d'attente, un message risque d'être traité plusieurs fois ou perdu si un consommateur échoue en cours de traitement. Simple Message Queue (anciennement MNS) utilise un mécanisme de délai de visibilité pour prévenir ces deux scénarios.

Chaque file d'attente dans Simple Message Queue (anciennement MNS) possède un délai de visibilité configurable. Lorsqu'un consommateur récupère un message, celui-ci devient invisible pour tous les autres consommateurs pendant toute la durée de ce délai. Le consommateur dispose ainsi d'une exclusivité temporaire pour traiter le message.

Fonctionnement

Après avoir récupéré un message, le consommateur doit effectuer l'une des actions suivantes avant l'expiration du délai de visibilité :

  • Le traitement réussit : supprimez le message à l'aide de son identifiant de réception (ReceiptHandle). Cette action retire définitivement le message de la file d'attente et confirme sa consommation réussie.

  • Le traitement échoue ou prend trop de temps : prolongez le délai de visibilité en appelant ChangeVisibilityTimeout avant son expiration. À défaut, le message redevient visible et un autre consommateur peut le récupérer, ce qui entraîne un double traitement.