WGET 시간이 초과됩니까?
다음 명령을 사용하여 Wget을 사용하여 cron을 통해 PHP 스크립트를 실행하고 있습니다.
wget -O - -q -t 1 http://www.example.com/cron/run
스크립트를 처리하는 데 최대 5-6 분이 소요됩니다. WGet은 그것을 기다렸다가 필요한 모든 시간을 제공합니까, 아니면 시간 초과됩니까?
wget의 man 페이지에 따르면 시간 제한과 관련된 몇 가지 옵션이 있으며 기본 읽기 시간 제한은 900 초입니다. 따라서 시간 제한이있을 수 있습니다.
문제의 옵션은 다음과 같습니다.
-T seconds
--timeout=seconds
네트워크 시간 초과를 초로 설정합니다. 이 지정하는 것과 같습니다
--dns-timeout
,--connect-timeout
그리고--read-timeout
모두 같은 시간에.
그리고 그 세 가지 옵션 :
--dns-timeout=seconds
DNS 조회 시간 제한을 초로 설정합니다.
지정된 시간 내에 완료되지 않는 DNS 조회는 실패합니다.
기본적으로 시스템 라이브러리에 의해 구현 된 것 외에는 DNS 조회에 대한 시간 제한이 없습니다.
--connect-timeout=seconds
연결 제한 시간을 초로 설정하십시오.
설정하는 데 더 오래 걸리는 TCP 연결은 중단됩니다.
기본적으로 시스템 라이브러리에 의해 구현 된 것 외에는 연결 제한 시간이 없습니다.
--read-timeout=seconds
읽기 (및 쓰기) 제한 시간을 초로 설정하십시오.
이 시간 초과의 "시간"은 유휴 시간을 나타냅니다. 다운로드의 어느 지점에서든 지정된 시간 (초) 이상 데이터가 수신되지 않으면 읽기가 실패하고 다운로드가 다시 시작됩니다.
이 옵션은 전체 다운로드 기간에 직접적인 영향을주지 않습니다.
나는 다음과 같은 것을 사용한다고 가정한다.
wget -O - -q -t 1 --timeout=600 http://www.example.com/cron/run
스크립트 기간보다 오래 전에 시간 초과가 없는지 확인해야합니다.
(예, 아마도 가장 잔인한 해결책 일 것입니다 ^^)
기본 시간 제한은 900 초입니다. 다른 시간 제한을 지정할 수 있습니다.
-T seconds
--timeout=seconds
기본값은 20 번 재 시도하는 것입니다. 다른 시도를 지정할 수 있습니다.
-t number
--tries=number
링크 : wget man 문서
귀하의 질문에서 PHP 스크립트라고 말 했으므로 가장 좋은 해결책은 단순히 스크립트에 추가하는 것입니다.
ignore_user_abort(TRUE);
이런 식으로 wget
종료 되더라도 PHP 스크립트는 최소한 max_execution_time
한계를 초과하지 않을 때까지 계속 처리 됩니다 (ini 지시어 : 기본적으로 30 초).
당으로 wget
anyay 당신이 그 제한 시간을 변경해서는 안 유닉스 매뉴얼에 따라 기본 wget을 제한 시간은 900 초 (15 분)입니다 5-6 분 당신이 필요로하는 것을 훨씬 큰 whis.
버전 1.14 이전에는 버그 로 인해 https를 통해 다운로드하는 경우 wget 시간 초과 인수가 준수되지 않았습니다 .
참고 URL : https://stackoverflow.com/questions/2291524/does-wget-timeout
'programing tip' 카테고리의 다른 글
openssl에서“unable to write 'random state'”수정 방법 (0) | 2020.10.26 |
---|---|
Java KeyStore에서 개인 키 / 공개 인증서 쌍 가져 오기 (0) | 2020.10.26 |
WPF : 대화 / 프롬프트 만들기 (0) | 2020.10.26 |
FileWriter (Java)를 사용하여 UTF-8로 파일을 작성 하시겠습니까? (0) | 2020.10.26 |
Mongoose를 사용하여 컬렉션에서 모든 문서를 제거하려면 어떻게해야합니까? (0) | 2020.10.26 |