/ / Kiedy limit czasu w fsockopen nie jest dostępny? - php, limit czasu, środowisko, fsockopen

Kiedy limit czasu w fsockopen jest niedostępny? - php, timeout, środowisko, fsockopen

Zgłaszam żądanie z lokalnego serwera WWW (arch Linux, php7) do zdalnego, który jest niedostępny, ponieważ ta sieć jest nieosiągalna. Tutaj limit czasu wydaje się być ignorowany (tj. fsockopen powrót zajmuje około 23 sekund zamiast podanego limitu czasu wynoszącego 5 sekund).

$timeout = 5;
$start = time();
dbglog($start . " timeout " . $timeout); // 1466081215 timeout 5
$socket = fsockopen($server,$port,$errno, $errstr, $timeout);
$end = time();
dbglog($end . " socket done in " . ($end-$start) . " seconds"); // 1466081238 socket done in 23 seconds

The oficjalne doku dla fsockopen stwierdza, co następuje:

Uwaga:

W zależności od środowiska domena Unix lub opcjonalny limit czasu połączenia mogą być niedostępne.

Jednak to wszystko, co dotyczy środowiska, w którym opcjonalny limit czasu nie jest dostępny.

Gdzie mogę znaleźć aktualną dokumentację dotyczącą tego problemu?

Odpowiedzi:

0 dla odpowiedzi № 1

To zależy od rodzaju gniazda. W przypadku lokalnego gniazda unix limit czasu nie ma większego sensu, ponieważ wszystko się dzieje proces <-kernel-> proces. Pomiędzy nie ma żadnej nieznanej sieci. Więc albo zawiedzie, albo się powiedzie. Czas potrzebny zależy od obciążenia serwera.