Limites de tempo por fase e o prazo total do pedido proxy
Separe os limites por fase do orçamento total de tempo de uma operação através de proxy, incluindo novas tentativas e o consumo da resposta.
Os limites de tempo de ligação e de leitura limitam esperas específicas. Não limitam necessariamente toda uma operação através de proxy, que também pode incluir espera em fila, DNS, CONNECT, TLS, redirecionamentos, novas tentativas e leitura da resposta.
| Limite | Âmbito |
|---|---|
| Limite de ligação | Estabelecimento da ligação segundo a definição do cliente |
| Limite de inatividade de leitura | Uma espera sem o progresso de dados esperado |
| Prazo total | Duração permitida da operação completa |
Comece pelo orçamento da operação
Use o prazo total documentado do cliente ou o mecanismo de cancelamento quando existir, a par dos limites de fase. O HTTPX separa as esperas de pool, ligação, leitura e escrita. O Requests declara que o seu limite não é um limite de transferência completa. O curl fornece um prazo de transferência total.
Por exemplo, uma tarefa de vinte segundos passa dois segundos em fila, três a estabelecer a sua rota e seis numa troca falhada. À tentativa seguinte restam cerca de nove segundos. Dar vinte segundos frescos a cada nova tentativa descartaria o orçamento original.
Utilize um relógio monotónico para contabilizar o tempo decorrido. Transporte um prazo absoluto ou a duração restante pelas camadas que detêm o trabalho. Se o mecanismo de cancelamento circundante não conseguir impor o âmbito necessário, torne essa limitação explícita.
Inclua o corpo e a limpeza
Um método que retorna após os cabeçalhos pode deixar a leitura do corpo fora do seu prazo. Decida se o orçamento cobre o estabelecimento, uma transferência completa finita ou um fluxo de longa duração com regras de vitalidade separadas. Um exemplo moderno em .NET para cancelar cabeçalhos e corpo transporta um único token pelas duas fases.
Deixe tempo para fechar respostas e concluir o cancelamento antes de uma nova tentativa ocupar capacidade do pool. Registe a fase falhada e o tempo decorrido; leituras repetidas que avançam podem satisfazer os limites de inatividade enquanto a tarefa total dura demasiado.
O prazo do gateway para montante pertence a esse gateway. Depois de devolver 504, o orçamento de cliente não utilizado não pode prolongar a tentativa concluída. Mantenha cada temporizador ligado ao seu proprietário ao decidir que definição deve ser corrigida.