Я знаю, что в /etc/php5/fpm/php.ini
существует настройка, называемая default_socket_timeout
, которая на практике завершает соединения, у которых не было ответа, надавленного на них в течение определенного количества времени. Я запускаю «прослушиватель» AJAX на основе RabbitMQ, который открывает соединение и ждет, пока он не получит ответ, если вообще будет, а затем перезапустится.Установите значение default_socket_timeout в бесконечность?
Проблема в том, что она может не получить ответ в течение длительного времени - иногда даже до 2 часов. Когда это случается, слушатель умирает, потому что он получил 504 Gateway Timeout
. Я знаю среднюю нагрузку - это внутренняя система, доступная только для определенного офиса - так много сокетов не будет проблемой. Есть ли способ установить default_socket_timeout
на "без ограничений"? Я попробовал default_socket_timeout=0
, но это только возвращает его к умолчанию 60 секунд.
Вы пробовали '-1'? Если это не сработает, вы также можете установить его на '(1 << 31) -1' (2147483647) на время около 68 лет. Кстати, я читал здесь [fsockopen] (http://php.net/manual/en/function.fsockopen.php), что 'default_socket_timeout' применяется только к установлению соединений; для тайм-аутов чтения/записи предлагается использовать [stream_set_timeout] (http://php.net/manual/en/function.stream-set-timeout.php) – Kenney
@ Kenney Спасибо, я обнаружил, что этот параметр не имеет отношения к моему вопрос вообще, см. мой ответ. Спасибо, в любом случае! –
Ах, ты понял, отлично! – Kenney