Lorsqu'un message est envoyé à un abonné pull, celui-ci doit le traiter et en accuser réception (ACK) dans le délai de confirmation. Sinon, l'abonné doit prolonger le délai avec un appel pour modifier le délai de confirmation.
Les bibliothèques clientes de haut niveau Pub/Sub fournissent une gestion des baux en tant que fonctionnalité qui prolonge automatiquement le délai d'un message qui n'a pas encore été confirmé. Par défaut, les bibliothèques clientes peuvent prolonger le délai d'une heure en envoyant des requêtes modifyAckDeadline périodiques.Les bibliothèques clientes de haut niveau pour Python, Go, Java et .Net utilisent le 99e centile du délai de confirmation pour déterminer la durée de chaque extension.
La gestion des baux vous permet de contrôler plus précisément la date limite de confirmation des messages par rapport à la configuration de la propriété au niveau de l'abonnement. Si vous n'utilisez que l'échéance de confirmation au niveau de l'abonnement, vous devez trouver un équilibre entre une valeur faible et une valeur élevée. Une valeur faible augmente la probabilité de doublons, tandis qu'une valeur élevée retarde la nouvelle diffusion des messages ayant échoué. Déterminer la valeur appropriée peut s'avérer difficile, en particulier lorsque le délai de traitement prévu pour différents messages varie considérablement.
Pour en savoir plus sur les propriétés d'un abonnement, y compris la date limite d'acquittement, 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.
Durée maximale de la période d'extension de la confirmation Durée maximale pendant laquelle 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 de confirmation. Durée maximale pendant laquelle la date limite de confirmation peut être prolongée pour chacune des requêtes
modify acknowledgment deadline
. Cette propriété vous permet de définir le délai pendant lequel Pub/Sub doit renvoyer un message. La nouvelle diffusion se produit lorsque le premier abonné qui traite le message plante ou devient défaillant et ne peut plus envoyer la requêtemodify acknowledgment deadline
.Durée minimale de chaque extension de confirmation. Durée minimale à laquelle prolonger la date limite de confirmation pour chacune des requêtes
modify acknowledgment deadline
. Cette propriété vous permet de spécifier la durée minimale qui doit s'écouler avant la nouvelle diffusion d'un message.
Il n'est pas garanti que les délais de confirmation soient respectés, sauf si vous activez la distribution de type "exactement une fois".
Gérer manuellement les délais de confirmation
Pour éviter l'expiration et la nouvelle diffusion des messages lorsque vous utilisez le pull unaire ou les bibliothèques clientes de bas niveau, utilisez la requête modify acknowledgment deadline
pour prolonger leurs délais de confirmation. Les exceptions sont les bibliothèques clientes de haut niveau Go et C++, qui fournissent une gestion des baux lors de l'utilisation de la méthode pull unaire. Consultez les exemples suivants pour la récupération unaire avec gestion des baux:
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.
Étape suivante
Découvrez les autres options de diffusion que vous pouvez configurer pour un abonnement:
Gérer les échecs de messages avec la 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 supprimer définitivement des messages
Recevoir et confirmer les messages exactement une seule fois
Traiter plus de messages avec le contrôle de la simultanéité