我正在使用Wget通过cron通过以下命令运行PHP脚本:
wget -O - -q -t 1 http://www.example.com/cron/run
该脚本最多需要5-6分钟来进行处理。WGet是否会等待它并一直提供它所需的时间,还是会超时?
根据wget的手册页,有两个与超时有关的选项-默认读取超时为900s-所以我说是的,它可能会超时。
这是有问题的选项:
-T seconds --timeout=seconds
将网络超时设置为秒秒。这等效于同时指定--dns-timeout, --connect-timeout和和 --read-timeout。
--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
应该确保没有超时时间超过脚本的持续时间。
(是的,这可能是最残酷的解决方案^^)