Faraday: O adaptador Net :: HTTP repete as solicitações automaticamente

Criado em 21 fev. 2018  ·  3Comentários  ·  Fonte: lostisland/faraday

Informação básica

  • Versão Faraday: qualquer
  • Versão Ruby: 2.5+

Descrição do problema

Ao usar Net::HTTP como adaptador, os usuários ficam surpresos com a estratégia de nova tentativa fornecida por Net::HTTP . Isso traz diferentes "problemas" (por exemplo, # 612 e # 771).
Não há muito que possamos fazer pelo Ruby <= 2.4, entretanto o Ruby 2.5 fornece uma nova configuração max_retries para Net::HTTP então Faraday deve configurá-la automaticamente quando disponível.

Passos para reproduzir

Veja os problemas # 612 e # 771.

feature help wanted

Todos 3 comentários

Tenho examinado esse problema. Uma abordagem mencionada em # 771 é definir o padrão como 0, mas alterá-lo dependendo da quantidade de novas tentativas configuradas. Teríamos que tornar o middleware Retry ciente do adaptador subjacente (já que alguns adaptadores podem não suportar isso) e aplicar condicionalmente essa lógica no env . O adaptador também deve saber sobre a quantidade de novas tentativas.

Como alternativa a essa abordagem, podemos configurá-la para não fazer novas tentativas, em vez disso, manter a lógica de nova tentativa confinada ao middleware Retry. Seja qual for o resultado, ficaria mais do que feliz em adquirir este @iMacTia .

Definitivamente, estava pensando na segunda opção.
Já temos o middleware Retry que pode cuidar da repetição de solicitações com falha.
Os adaptadores (neste caso, Net :: HTTP) nunca devem repetir as solicitações por conta própria.

Tudo o que precisamos fazer neste caso é dizer ao adaptador Net :: HTTP para definir max_retries como 0, se esta propriedade estiver disponível, é claro

@iMacTia - Não poderia estar mais de acordo. Nesse caso, vou pegar isso.

Esta página foi útil?
0 / 5 - 0 avaliações