WGET是否超时?
我使用Wget通过cron运行PHP脚本,使用以下命令:
wget -O - -q -t 1 http://www.example.com/cron/run
脚本最多需要5-6分钟才能完成处理。 请问WGet是否等待它,并把它所需要的时间,或将它超时?
根据wget的手册页 ,有两个与超时有关的选项 – 缺省的超时时间为900s – 所以我说,是的,它可能会超时。
以下是有问题的选项:
-T seconds --timeout=seconds
将networking超时设置为秒。 这相当于同时指定
--dns-timeout
,–--connect-timeout
和--connect-timeout
。
对于这三个选项:
--dns-timeout=seconds
将DNS查找超时设置为秒。
在指定时间内未完成的DNS查找将失败。
默认情况下,DNS查找没有超时,除了由系统库实现的。
--connect-timeout=seconds
将连接超时设置为秒秒。
需要较长时间build立的TCP连接将被中止。
默认情况下,没有连接超时,除了由系统库实现的连接超时。
--read-timeout=seconds
将读取(和写入)超时设置为秒。
这个超时的“时间”是指空闲时间:如果在下载的任何时间点没有收到超过指定秒数的数据,读取失败,下载重新开始。
该选项不会直接影响整个下载的持续时间。
我想使用类似的东西
wget -O - -q -t 1 --timeout=600 http://www.example.com/cron/run
应该确保没有超时的时间超过你的脚本的持续时间。
(是的,这可能是最残忍的解决scheme^^)
默认的超时时间是900秒。 您可以指定不同的超时。
-T seconds --timeout=seconds
默认是重试20次。 您可以指定不同的尝试。
-t number --tries=number
链接: wget文件
因为在你的问题中你说这是一个PHP脚本,也许最好的解决办法可能是简单地添加你的脚本:
ignore_user_abort(TRUE);
这样,即使wget
终止,PHP脚本也会继续处理,直到它不超过max_execution_time
限制(ini指令:默认30秒)。
根据wget
任何你不应该改变它的超时, 根据UNIX手册 的默认wget超时是900秒(15分钟) ,威士比你所需要的5-6分钟大得多。
在版本1.14之前,如果由于错误导致通过https下载,wget超时参数不被遵守。