我正在使用wget通过cron PHP脚本,用下面的命令:WGET是否超时?
wget -O - -q -t 1 http://www.example.com/cron/run
该脚本将采取最大的5-6分钟来完成其处理。 WGet是否会等待并随时提供,否则会超时?
我正在使用wget通过cron PHP脚本,用下面的命令:WGET是否超时?
wget -O - -q -t 1 http://www.example.com/cron/run
该脚本将采取最大的5-6分钟来完成其处理。 WGet是否会等待并随时提供,否则会超时?
据the man page of wget,有一对夫妇的有关超时选项 - 并有一个默认读取900S的超时 - 所以我说,是的,它可能超时。
这里是有问题的选项:
-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
由于你的问题,你说这是一个PHP脚本,也许是最好的解决方案可能是简单地在你的脚本中加入:
ignore_user_abort(TRUE);
这样,即使wget
终止,PHP脚本继续处理至少不会超过max_execution_time
限制(ini指令:默认30秒)。
按wget
anyay你不应该改变它的超时,according to the UNIX manual默认wget的超时时间为900秒(15分钟),WHIS要大得多,你需要5-6分钟。
如果我设置-t 0将它无限期地等待? – 2010-02-18 19:30:52
的'-t'选项似乎是'--tries'的别名,其中*重于数量的设置数量。* ;;;它似乎并没有涉及到任何种类的超时,但次数的wget将重新尝试下载,如果有一个错误 - 你可能不希望超时被视为一个错误,脚本被重新调用。 – 2010-02-18 19:33:29
--timeout = 0将禁用超时 – MiniScalope 2010-11-26 20:09:43