Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Repetições

Modo de foco
Repetições - AWS SDK para Rust

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

O AWS SDK para Rust fornece um comportamento de repetição padrão e opções de configuração personalizáveis. Ligações para retornar Serviços da AWS ocasionalmente exceções inesperadas. Certos tipos de erros, como erros transitórios ou de limitação, podem ser bem-sucedidos se a chamada for repetida.

O comportamento de repetição pode ser configurado globalmente usando variáveis de ambiente ou configurações no AWS config arquivo compartilhado. Para obter informações sobre essa abordagem, consulte o comportamento de repetição no Guia de referência de ferramentas AWS SDKs e ferramentas. Também inclui informações detalhadas sobre implementações de estratégias de repetição e como escolher uma em vez da outra.

Como alternativa, essas opções também podem ser configuradas em seu código, conforme mostrado nas seções a seguir.

Configuração de nova tentativa padrão

Cada cliente de serviço usa como padrão a configuração da estratégia de standard repetição fornecida pela estrutura. RetryConfig Por padrão, uma chamada será tentada três vezes (a tentativa inicial, mais duas tentativas). Além disso, cada nova tentativa será adiada por um período curto e aleatório para evitar tempestades de repetições. Essa convenção é adequada para a maioria dos casos de uso, mas pode ser inadequada em circunstâncias específicas, como sistemas de alto rendimento.

Somente alguns tipos de erros são considerados passíveis de nova tentativa pelo. SDKs Exemplos de erros que podem ser repetidos são:

  • tempos limite de soquete

  • limitação do lado do serviço

  • erros de serviço transitórios, como respostas HTTP 5XX

Os exemplos a seguir não são considerados repetitivos:

  • Parâmetros ausentes ou inválidos

  • erros de autenticação/segurança

  • exceções de configuração incorreta

Você pode personalizar a estratégia de standard repetição definindo o máximo de tentativas, atrasos e configuração de recuo.

Máximo de tentativas

Você pode personalizar o máximo de tentativas em seu código fornecendo uma modificação RetryConfigpara: aws_config::defaults

const CUSTOM_MAX_ATTEMPTS: u32 = 5; let retry_config = RetryConfig::standard() // Set max attempts. When max_attempts is 1, there are no retries. // This value MUST be greater than zero. // Defaults to 3. .with_max_attempts(CUSTOM_MAX_ATTEMPTS); let config = aws_config::defaults(BehaviorVersion::latest()) .retry_config(retry_config) .load() .await;

Atrasos e recuos

Se uma nova tentativa for necessária, a estratégia de repetição padrão aguarda antes de fazer a tentativa subsequente. O atraso na primeira tentativa é pequeno, mas cresce exponencialmente nas tentativas posteriores. A quantidade máxima de atraso é limitada para que não cresça muito.

A instabilidade aleatória é aplicada aos atrasos entre todas as tentativas. A instabilidade ajuda a mitigar o efeito de grandes frotas que podem causar novas tempestades. Para uma discussão mais profunda sobre recuo exponencial e instabilidade, consulte Exponential Backoff And Jitter no blog de arquitetura.AWS

Você pode personalizar as configurações de atraso em seu código fornecendo uma modificação RetryConfigao seuaws_config::defaults. O código a seguir define a configuração para atrasar a primeira tentativa de repetição em até 100 milissegundos e que o tempo máximo entre qualquer tentativa de repetição é de 5 segundos.

let retry_config = RetryConfig::standard() // Defaults to 1 second. .with_initial_backoff(Duration::from_millis(100)) // Defaults to 20 seconds. .with_max_backoff(Duration::from_secs(5)); let config = aws_config::defaults(BehaviorVersion::latest()) .retry_config(retry_config) .load() .await;

Modo de repetição adaptável

Como alternativa à estratégia de repetição do standard modo, a estratégia de repetição do adaptive modo é uma abordagem avançada que busca a taxa de solicitação ideal para minimizar os erros de limitação.

nota

As novas tentativas adaptáveis são um modo de repetição avançado. Normalmente, o uso dessa estratégia não é recomendado. Consulte o comportamento de repetição no Guia de referência de ferramentas AWS SDKs e ferramentas.

As novas tentativas adaptáveis incluem todos os recursos das novas tentativas padrão. Ele adiciona um limitador de taxa do lado do cliente que mede a taxa de solicitações limitadas em comparação com solicitações não limitadas. Também limita o tráfego para tentar permanecer dentro de uma largura de banda segura, o que, idealmente, causa zero erros de limitação.

A taxa se adapta em tempo real às mudanças nas condições de serviço e nos padrões de tráfego e pode aumentar ou diminuir a taxa de tráfego de acordo. Fundamentalmente, o limitador de taxa pode atrasar as tentativas iniciais em cenários de tráfego intenso.

Você pode selecionar a estratégia de adaptive repetição no código fornecendo uma modificação: RetryConfig

let config = aws_config::defaults(BehaviorVersion::latest()) .retry_config(RetryConfig::adaptive()) .load() .await;
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.