|
|
|
таймут блин выставляю, а он всё равно ждет по 30 секунд
если прокси глюкнутый и тормознутый, не хочу ждать 30 секунд ответа от него, выставляю 10, всё равно 30 ждет. грят дело в хостинге, но я и локально под апач виндовский пробывал, и на хосту юниксовском - у хостера, ждет 30 секунд и всё
ху ноуз в чем проблема? |
|
|
|
|
|
ну чё, никто не знает реально? |
|
|
|
|
|
If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to fsockopen() only applies while connecting the socket.
Пробовал? |
|
|
|
|
|
знаю, сталкивался.
В функцию fsockopen можно передать параметр timeout, но как показывает практика этот таймаут срабатывает только в половине случаев. Причина кроется в том, что таймаут контролируется этой функцией только когда идет уже непосредственное обращение к хосту. А как известно, перед тем, как обратиться к самому хосту, подобные функции выполняют запрос к DNS серверу, чтобы узнать IP хоста по домену. Вот когда на этом этапе запрос подвисает (проблемы на DNS) - то данный таймаут бесполезен. Варианты решения: определять IP по домену самосоятельно (например через команды ос (host с параметрами таймаута)), а в fsockopen подсовывать не домен, а сразу IP-адрес, либо пользоваться CURL, там вроде бы с таймаутами дела получше обстоят (специально не проверял, но после того как стал юзать - таких подвисаний вроде не было). Вобщем насчет курла на 100% не уверен, а первый вариант должен работать всегда. |
|
|
|
|
|
|
|