Lorsqu'un message est distribué à un abonné pull, l'abonné doit le traiter et confirmer (confirmer) le message dans le délai de confirmation. Sinon, l'abonné doit prolonger ce délai via un appel pour modifier le délai de confirmation.
Les bibliothèques clientes de haut niveau de Pub/Sub permettent de gérer les baux en tant que fonctionnalité qui prolonge automatiquement le délai d'envoi d'un message dont la réception n'a pas encore été confirmée. Par défaut, les bibliothèques clientes peuvent prolonger le délai jusqu'à une heure en émettant régulièrement des requêtes modifyAckDeadline.Les bibliothèques clientes de haut niveau pour Python, Go, Java et .Net utilisent le 99e centile du délai d'accusé de réception pour déterminer la durée de chaque extension.
La gestion du bail vous permet de contrôler plus précisément le délai de confirmation des messages par rapport à la configuration de la propriété au niveau de l'abonnement. Si vous n'utilisez que le délai de confirmation au niveau de l'abonnement, vous devez trouver le compromis entre une valeur faible et une valeur élevée. Une valeur faible augmente la probabilité de créer des doublons, tandis qu'une valeur élevée retarde la livraison des messages ayant échoué. Déterminer la valeur correcte peut s'avérer difficile, en particulier lorsque le temps de traitement attendu pour différents messages varie considérablement.
Pour en savoir plus sur les propriétés d'un abonnement, y compris le délai de confirmation, consultez la section Propriétés d'abonnement.
Configuration de la gestion des baux
Vous pouvez configurer les propriétés suivantes dans les bibliothèques clientes de haut niveau pour contrôler la gestion des baux.
Période maximale d'extension de l'accusé de réception. Délai maximal pendant lequel vous pouvez prolonger le délai de confirmation d'un message à l'aide de la requête
modify acknowledgment deadline
. Cette propriété vous permet de déterminer la durée pendant laquelle les clients abonnés doivent traiter les messages.Durée maximale de chaque extension d'accusé de réception. Délai maximal de prolongement du délai de confirmation pour chacune des requêtes
modify acknowledgment deadline
. Cette propriété vous permet de définir le temps nécessaire à Pub/Sub pour redistribuer un message. La nouvelle distribution se produit lorsque le premier abonné qui traite le message plante ou devient non opérationnel et n'est plus en mesure d'envoyer la requêtemodify acknowledgment deadline
.Durée minimale de chaque extension d'accusé de réception. Délai minimal avant lequel prolonger le délai de confirmation pour chacune des requêtes
modify acknowledgment deadline
. Cette propriété vous permet de spécifier le laps de temps minimal qui doit s'écouler avant qu'un message soit renvoyé.
Le respect des délais d'accusé de réception n'est pas garanti, sauf si vous activez la distribution "exactement une fois".
Gérer manuellement les délais de confirmation
Pour éviter l'expiration et la nouvelle livraison des messages lorsque vous utilisez le mode pull unaire ou les bibliothèques clientes de bas niveau, utilisez la requête modify acknowledgment deadline
pour prolonger les délais de confirmation. Les bibliothèques clientes de haut niveau Go et C++ en sont les exceptions, qui permettent de gérer les baux en cas d'extraction unaire. Consultez les exemples suivants pour le mode pull unaire avec gestion du bail:
C#
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C# qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C#.
Java
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Node.js
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Python
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Ruby
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Ruby.
Étapes suivantes
Découvrez les autres options de distribution que vous pouvez configurer pour un abonnement:
Gérer les échecs de messages avec une stratégie de nouvelle tentative d'abonnement
Transférer les messages non distribués vers un sujet de lettres mortes
Rouvrir des messages déjà confirmés ou les supprimer définitivement
Traiter davantage de messages grâce au contrôle de simultanéité