Does WGET timeout?

前端 未结 4 1286
一生所求
一生所求 2020-12-13 01:26

I\'m running a PHP script via cron using Wget, with the following command:

wget -O - -q -t 1 http://www.example.com/cron/run

The script wil

相关标签:
4条回答
  • 2020-12-13 01:51

    Since in your question you said it's a PHP script, maybe the best solution could be to simply add in your script:

    ignore_user_abort(TRUE);
    

    In this way even if wget terminates, the PHP script goes on being processed at least until it does not exceeds max_execution_time limit (ini directive: 30 seconds by default).

    As per wget anyay you should not change its timeout, according to the UNIX manual the default wget timeout is 900 seconds (15 minutes), whis is much larger that the 5-6 minutes you need.

    0 讨论(0)
  • 2020-12-13 01:57

    According to the man page of wget, there are a couple of options related to timeouts -- and there is a default read timeout of 900s -- so I say that, yes, it could timeout.


    Here are the options in question :

    -T seconds
    --timeout=seconds
    

    Set the network timeout to seconds seconds. This is equivalent to specifying --dns-timeout, --connect-timeout, and --read-timeout, all at the same time.


    And for those three options :

    --dns-timeout=seconds
    

    Set the DNS lookup timeout to seconds seconds.
    DNS lookups that don't complete within the specified time will fail.
    By default, there is no timeout on DNS lookups, other than that implemented by system libraries.

    --connect-timeout=seconds
    

    Set the connect timeout to seconds seconds.
    TCP connections that take longer to establish will be aborted.
    By default, there is no connect timeout, other than that implemented by system libraries.

    --read-timeout=seconds
    

    Set the read (and write) timeout to seconds seconds.
    The "time" of this timeout refers to idle time: if, at any point in the download, no data is received for more than the specified number of seconds, reading fails and the download is restarted.
    This option does not directly affect the duration of the entire download.


    I suppose using something like

    wget -O - -q -t 1 --timeout=600 http://www.example.com/cron/run
    

    should make sure there is no timeout before longer than the duration of your script.

    (Yeah, that's probably the most brutal solution possible ^^ )

    0 讨论(0)
  • 2020-12-13 01:57

    The default timeout is 900 second. You can specify different timeout.

    -T seconds
    --timeout=seconds
    

    The default is to retry 20 times. You can specify different tries.

    -t number
    --tries=number
    

    link: wget man document

    0 讨论(0)
  • 2020-12-13 02:12

    Prior to version 1.14, wget timeout arguments were not adhered to if downloading over https due to a bug.

    0 讨论(0)
提交回复
热议问题