Я пытаюсь подключиться к серверу beanstalkd через скрипт PHP и зарезервировать задания из существующей очереди.
Я использую функцию fgets () для получения ответов от демона, ожидая, что скрипт будет зависать, если работа недоступна, вот пример кода:
set_time_limit(0);
$connection = fsockopen('localhost', 11300);
fwrite($connection, "reserve\r\n");
stream_set_blocking($connection, TRUE);
fgets($connection);
Как вы можете видеть, я пытаюсь заставить функцию fgets () блокировать, и я устанавливаю max_execution_time на 0 (что означает отсутствие ограничений), но через некоторое время (2 минуты) скрипт возвращается без ошибок.
Я попытался запустить резервную команду через telnet, и она зависла как исключено.
Я также пытался использовать fread (), но получаю тот же бэвиур.
Есть предложения, как ее решить?