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 assinante precisa estender o prazo com uma chamada para modificar o prazo de confirmação.
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, as bibliotecas de cliente podem estender o prazo para uma hora emitindo solicitações modifyAckDeadline periódicas. As bibliotecas de cliente de alto nível para Python, Go, Java e .Net usam o 99º percentil do atraso de confirmação para determinar a duração de cada extensão.
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 de 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 de assinatura.
Configuração do gerenciamento de locação
É possível configurar as propriedades a seguir nas bibliotecas de cliente de alto nível para controlar o gerenciamento de contratos.
Período máximo de extensão de confirmação. O tempo máximo que você pode estender o prazo de confirmação de uma mensagem usando a solicitação
modify acknowledgment deadline
. Essa propriedade permite determinar por quanto tempo os clientes assinantes vão processar 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 serão respeitados, a menos que você ative a entrega exatamente uma vez.
Gerenciar manualmente os prazos de confirmação
Para evitar a expiração e reenvio de mensagens ao usar pull unário ou o
bibliotecas de cliente de baixo nível, use a solicitação modify acknowledgment deadline
para estender a confirmação
prazos. As exceções são as bibliotecas de cliente de alto nível do Go e do C++
que oferecem gerenciamento de lease ao usar a extração unária. Confira os seguintes exemplos de pull unário com gerenciamento de concessã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
Reproduzir mensagens confirmadas anteriormente ou limpar mensagens