Quando uma mensagem é entregue a um assinante pull, ele precisa processar e confirma a mensagem dentro do prazo de confirmação. Caso contrário, o o assinante deve estender o prazo com uma chamada para modificar a confirmação prazo.
as bibliotecas de cliente de alto nível do Pub/Sub Gerenciar o lease como um recurso que estende automaticamente o prazo de uma mensagem que ainda não foi confirmada. Por padrão, o cliente as bibliotecas podem estender o prazo para uma hora emitindo modifyAckDeadline solicitações.As bibliotecas de cliente de alto nível para Python, Go, Java e .Net usam o 99o percentil do atraso de confirmação para determinar a duração de cada .
O gerenciamento de cessão de direito real permite que você tenha um controle mais granular sobre o prazo de confirmação de mensagens em comparação com a configuração da propriedade no nível da assinatura. Se estiver usando apenas o prazo de confirmação no nível da assinatura, você terá equilibrar um equilíbrio entre um valor baixo e um alto. Um valor baixo aumenta a probabilidade de duplicações e um valor alto atrasa o reenvio de mensagens com falha. Determinar o valor certo pode ser difícil, especialmente quando o tempo de processamento esperado para mensagens diferentes varia muito.
Para mais informações sobre as propriedades de uma assinatura, incluindo o prazo de confirmação, consulte Propriedades da assinatura.
Configuração do gerenciamento de locação
Você pode configurar as seguintes propriedades no bibliotecas de cliente de alto nível para controlar gestão de locação.
Período máximo de extensão de confirmação. A quantidade máxima de tempo que você pode estender o prazo de confirmação de uma mensagem usando o
modify acknowledgment deadline
. Essa propriedade permite determinar como por quanto tempo você quer que os clientes do assinante processem as mensagens.Duração máxima para cada extensão de confirmação. A quantidade máxima tempo para estender o prazo de confirmação para cada uma das solicitações
modify acknowledgment deadline
. Essa propriedade permite definir o valor tempo que o Pub/Sub leva para reenviar uma mensagem. O reenvio ocorre quando o primeiro assinante que processa a mensagem falha ou perde a integridade e não pode mais enviar a solicitaçãomodify acknowledgment deadline
.Duração mínima de cada extensão de confirmação. O valor mínimo de tempo para estender o prazo de confirmação para cada uma das solicitações
modify acknowledgment deadline
. Essa propriedade permite especificar o tempo mínimo que precisa passar antes que a reentrega de uma mensagem ocorra.
Não há garantia de que os prazos de confirmação sejam respeitados, a menos que você ativa entrega única.
Gerenciar manualmente os prazos de confirmação
Para evitar a expiração e a reentrega de mensagens ao usar o pull unário ou as
bibliotecas de cliente de baixo nível, use a solicitação modify acknowledgment deadline
para estender os prazos de confirmação. As exceções são as bibliotecas Go e C++
bibliotecas de cliente de alto nível que oferecem gerenciamento de lease ao usar unários
puxar. Confira os seguintes exemplos de pull unário com gerenciamento de alocação:
C#
Antes de tentar esse exemplo, siga as instruções de configuração do C# em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C#.
Java
Antes de tentar essa amostra, siga as instruções de configuração do Java em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Java.
Node.js
Antes de tentar essa amostra, siga as instruções de configuração do Node.js em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Node.js.
Python
Antes de tentar esse exemplo, siga as instruções de configuração do Python em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Python.
Ruby
Antes de tentar esse exemplo, siga as instruções de configuração do Ruby em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Ruby.
A seguir
Leia sobre as outras opções de entrega que você pode configurar para uma assinatura:
Lidar com falhas de mensagens com a política de nova tentativa de assinatura
Encaminhar mensagens não entregues para um tópico de mensagens inativas
Repetir mensagens confirmadas anteriormente ou limpar mensagens