Cuando se entrega un mensaje a un suscriptor de extracción, este debe procesarlo y confirmarlo (ACK) dentro de la fecha límite de confirmación. De lo contrario, el suscritor debe extender el plazo con una llamada para modificar el plazo de confirmación de recepción.
Las bibliotecas cliente de alto nivel de Pub/Sub proporcionan administración de arrendamientos como una función que extiende automáticamente el plazo de un mensaje que aún no se confirmó. De forma predeterminada, las bibliotecas cliente pueden extender el plazo a una hora mediante la emisión periódica de solicitudes modifyAckDeadline.Las bibliotecas cliente de alto nivel para Python, Go, Java y .Net usan el percentil 99 de la demora de acuse de recibo para determinar la duración de cada extensión.
La administración de arrendamientos te permite tener un control más detallado sobre la fecha límite de confirmación de los mensajes en comparación con la configuración de la propiedad a nivel de la suscripción. Si solo usas la fecha límite de acuse de recibo a nivel de la suscripción, debes equilibrar la compensación entre un valor bajo y uno alto. Un valor bajo aumenta la probabilidad de duplicados, y un valor alto retrasa la reimpresión de los mensajes que fallaron. Determinar el valor correcto puede ser difícil, en especial cuando el tiempo de procesamiento esperado para diferentes mensajes varía mucho.
Para obtener más información sobre las propiedades de una suscripción, incluida la fecha límite de acuse de recibo, consulta Propiedades de la suscripción.
Configuración de la administración de arrendamientos
Puedes configurar las siguientes propiedades en las bibliotecas cliente de alto nivel para controlar la administración de arrendamientos.
Período máximo de extensión de confirmación. Es la cantidad máxima de tiempo durante la cual puedes extender la fecha límite de confirmación de un mensaje con la solicitud
modify acknowledgment deadline
. Esta propiedad te permite determinar durante cuánto tiempo quieres que los clientes suscriptores procesen los mensajes.Es la duración máxima de cada extensión de acuse de recibo. Es la cantidad máxima de tiempo durante la cual se puede extender la fecha límite de confirmación para cada una de las solicitudes de
modify acknowledgment deadline
. Esta propiedad te permite definir el tiempo que tarda Pub/Sub en volver a entregar un mensaje. La reenvío se produce cuando el primer suscriptor que procesa el mensaje falla o se vuelve inestable y ya no puede enviar la solicitudmodify acknowledgment deadline
.Duración mínima para cada extensión de acuse de recibo. Es la cantidad mínima de tiempo con la que se extiende la fecha límite de confirmación para cada una de las solicitudes de
modify acknowledgment deadline
. Esta propiedad te permite especificar la cantidad mínima de tiempo que debe transcurrir antes de que se vuelva a entregar un mensaje.
No se garantiza que se respeten las fechas límite de acuse de recibo, a menos que habilites la entrega exactamente una vez.
Cómo administrar manualmente los plazos de confirmación
Para evitar el vencimiento y la reenvío de mensajes cuando se usa la extracción unaria o las bibliotecas cliente de bajo nivel, usa la solicitud modify acknowledgment deadline
para extender sus plazos de confirmación. Las excepciones son las bibliotecas cliente de alto nivel Go y C++, que proporcionan administración de asignaciones de tiempo cuando se usa el comando de extracción unaria. Consulta los siguientes ejemplos de extracción unaria con administración de asignaciones de tiempo:
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
¿Qué sigue?
Obtén información sobre las otras opciones de publicación que puedes configurar para una suscripción:
Controla las fallas de mensajes con la política de reintentos de suscripción
Cómo reenviar mensajes que no se pudieron entregar a un tema de mensajes no entregados
Vuelve a reproducir mensajes confirmados o borra definitivamente mensajes