Até agora, não consegui encontrar nada realmente, mas é verdade que curl
isso realmente não termina?
user@host:~# curl http://localhost/testdir/image.jpg
Estou perguntando porque estou redirecionando qualquer solicitação de imagens testdir
para um módulo Apache separado, que gera essas imagens em tempo real. Pode levar até 15 minutos até que a foto esteja realmente pronta e entregue ao cliente solicitante.
Vai curl
sempre esperar (ou está dependendo da configuração) ou há qualquer tipo de tempo limite?
Respostas:
Sim.
Parâmetros de tempo limite
curl
tem duas opções:--connect-timeout
e--max-time
.Citando a partir da página de manual:
e:
Predefinições
Aqui (no Debian) ele pára de tentar se conectar após 2 minutos, independentemente do tempo especificado
--connect-timeout
e, embora o valor padrão do tempo limite da conexão pareça ser de 5 minutos, de acordo com aDEFAULT_CONNECT_TIMEOUT
macro em lib / connect.h .--max-time
Parece que não existe um valor padrão para ,curl
aguardando uma resposta sempre que a conexão inicial for bem-sucedida.O que usar?
Você provavelmente está interessado na última opção
--max-time
,. Para o seu caso, defina-o como900
(15 minutos).Especificar a opção
--connect-timeout
para algo como60
(um minuto) também pode ser uma boa ideia. Caso contráriocurl
, tentará se conectar novamente, aparentemente usando algum algoritmo de backoff.fonte
Existe timelimit: / usr / bin / timelimit - efetivamente limita o tempo absoluto de execução de um processo
fonte
Melhor do que
--max-time
as opções--speed-limit
e--speed-time
. Em resumo,--speed-limit
especifica a velocidade média mínima que você deseja aceitar e--speed-time
especifica quanto tempo a velocidade de transferência pode permanecer abaixo desse limite antes que a transferência atinja o tempo limite e seja abortada.fonte
Se você possui o coreutils instalado no MacOS, pode usar o comando GNU timeout que está incluído nesse pacote. As ferramentas GNU são todas prefixadas com um,
g
portanto a CLI seriagtimeout
.Exemplo
fonte
Duas soluções em BASH4 +
Uso da amostra:
RECOMENDAR QUE NC seja usado se precisarmos de uma porta específica
fonte