Cuando se entrega un mensaje a un suscriptor de extracción, el suscriptor debe procesar y confirmar (confirmar) el mensaje dentro del plazo de confirmación. De lo contrario, el suscriptor debe extender el plazo con una llamada para modificar el plazo de confirmación.
Las bibliotecas cliente de alto nivel de Pub/Sub proporcionan administración de asignaciones como una función que extiende de forma automática la fecha límite 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 de solicitudes modifyAckDeadline periódicas.Las bibliotecas cliente de alto nivel para Python, Go, Java y .NET usan el percentil 99 de demora de confirmación para determinar la longitud de cada extensión.
La administración de asignaciones te permite tener un control más detallado sobre la fecha límite de confirmación de recepción de los mensajes en comparación con la configuración de la propiedad a nivel de la suscripción. Si solo usas el plazo de confirmación de recepción a nivel de la suscripción, debes equilibrar entre un valor bajo y uno alto. Un valor bajo aumenta la probabilidad de que se generen duplicados, y un valor alto retrasa el reenvío de los mensajes con errores. Determinar el valor correcto puede ser difícil, en especial cuando el tiempo de procesamiento esperado para los diferentes mensajes varía mucho.
Para obtener más información sobre las propiedades de una suscripción, incluida la fecha límite de confirmación, consulta Propiedades de suscripción.
Configuración de la administración de alquileres
Puedes configurar las siguientes propiedades en las bibliotecas cliente de alto nivel para controlar la administración de las asignaciones.
Período máximo de extensión de confirmación. El tiempo máximo durante el cual puedes extender el plazo de confirmación de recepción de un mensaje mediante la solicitud
modify acknowledgment deadline
. Esta propiedad te permite determinar durante cuánto tiempo quieres que los clientes suscriptores procesen los mensajes.Duración máxima para cada extensión de confirmación. La cantidad máxima de tiempo que se extenderá el plazo de confirmación de cada una de las solicitudes
modify acknowledgment deadline
. Esta propiedad te permite definir la cantidad de tiempo que demora Pub/Sub para volver a entregar un mensaje. El reenvío se produce cuando el primer suscriptor que procesa el mensaje falla o se deteriora, y ya no puede enviar la solicitudmodify acknowledgment deadline
.Duración mínima de cada extensión de confirmación. La cantidad mínima de tiempo en el que se extenderá el plazo de confirmación de cada una de las solicitudes
modify acknowledgment deadline
. Esta propiedad te permite especificar el tiempo mínimo que debe pasar antes de que se vuelva a enviar un mensaje.
No se garantiza que se respeten los plazos de confirmación, a menos que habilites la entrega exactamente una vez.
Administra manualmente los plazos de confirmación
Para evitar el vencimiento y el reenvío de mensajes cuando se usa una 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 de Go y C++ que proporcionan administración de asignación de tiempo cuando se usa una extracción unaria. Consulta los siguientes ejemplos de extracción unaria con administración de asignación 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.
Rita
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 entrega que puedes configurar para una suscripción:
Maneja las fallas de los mensajes con la política de reintentos de suscripción
Cómo reenviar mensajes no entregados a un tema de mensajes no entregados
Cómo volver a reproducir mensajes confirmados o borrar definitivamente mensajes