Tous les produits
Search
Centre de documentation

Simple Message Queue (formerly MNS):Short polling and long polling

Dernière mise à jour :Aug 10, 2026

Simple Message Queue (SMQ, formerly MNS) prend en charge deux méthodes pour consommer des messages d'une file d'attente : l'interrogation courte et l'interrogation longue. Choisissez la méthode adaptée à vos exigences en matière de latence et de coûts.

  • L'interrogation courte renvoie une réponse immédiate, qu'un message soit disponible ou non. Cette méthode minimise la latence par requête, mais peut générer un volume élevé de réponses vides.

  • L'interrogation longue maintient la connexion ouverte jusqu'à l'arrivée d'un message ou jusqu'à l'expiration du délai d'attente. Elle réduit les réponses vides et diminue les coûts, ce qui en fait la méthode recommandée pour la plupart des charges de travail.

Fonctionnement de l'interrogation courte

Avec l'interrogation courte, le cluster SMQ répond instantanément à chaque demande de réception. Si aucun message n'est disponible, la réponse indique un résultat vide.

Pour activer l'interrogation courte, respectez l'une des conditions suivantes :

  • Définissez la période d'interrogation longue sur 0 lors de la création de la file d'attente.

  • Définissez le paramètre waitSeconds sur 0 lors de l'appel à l'opération API de réception des messages.

Chacune de ces conditions déclenche l'interrogation courte. Comme le serveur répond instantanément, indépendamment de la disponibilité des messages, des requêtes fréquentes adressées à une file d'attente vide génèrent des appels API inutiles et augmentent les coûts.

Fonctionnement de l'interrogation longue

Avec l'interrogation longue, le serveur maintient la connexion ouverte et ne répond que lorsqu'un message arrive ou que le délai d'attente expire. Cela élimine les réponses vides pendant la fenêtre d'attente et réduit le nombre total d'appels API.

Pour activer l'interrogation longue, respectez l'une des conditions suivantes :

  • Définissez la période d'interrogation longue sur une valeur supérieure à 0 (jusqu'à 30 secondes) lors de la création de la file d'attente.

  • Définissez le paramètre waitSeconds sur une valeur supérieure à 0 lors de l'appel à l'opération API de réception des messages.

Si la période d'interrogation longue au niveau de la file d'attente et le paramètre waitSeconds au niveau de la requête sont tous deux définis, la valeur de waitSeconds est prioritaire.

Avantages de l'interrogation longue

  • Livraison immédiate : Les messages sont renvoyés dès leur arrivée, sans attendre le prochain cycle d'interrogation.

  • Moins de réponses vides : Le serveur conserve la requête en attente jusqu'à ce qu'un message soit disponible, de sorte que les files d'attente inactives ne génèrent plus constamment de réponses vides.

  • Coûts réduits : Un nombre moindre de requêtes API entraîne une baisse des coûts de messagerie.

Référence de configuration

Paramètre Niveau Valeur pour l'interrogation courte Valeur pour l'interrogation longue Maximum
Période d'interrogation longue File d'attente (définie lors de la création) 0 Supérieure à 0 30 secondes
waitSeconds Requête API (réception de message) 0 Supérieure à 0 30 secondes

Règle de priorité : La valeur waitSeconds dans une requête API prévaut sur la période d'interrogation longue configurée pour la file d'attente.

Bonnes pratiques

  • Privilégiez l'interrogation longue pour la plupart des charges de travail. L'interrogation courte n'est appropriée que si votre application exige des temps de réponse inférieurs à la seconde pour l'appel de réception lui-même, indépendamment de la disponibilité d'un message.

  • Augmentez la période d'interrogation longue si vous constatez de fréquentes réponses vides. Si votre consommateur envoie un grand nombre de requêtes de réception dont la plupart renvoient un résultat vide, augmentez la période d'interrogation longue pour réduire les appels API inutiles et diminuer les coûts.