Влияет ли на PHPs SoapServer максимальное время выполнения?
-
19-09-2019 - |
Вопрос
Недавно я создал Java-интерфейс для веб-сервиса PHP, который использует PHPs SoapServer.
Мое приложение выполняет длительную синхронизацию данных, и из того, что я знаю из PHP, я подготовил себя к получению закрытых подключений из-за max_execution_time
предел.
Но я никогда не получаю никаких сообщений об ошибке, как будто экземпляр SoapServer работает вечно.
Мое лучшее предположение здесь заключается в том, что я действительно не понимаю, как работает SoapServer.Итак, кто-нибудь может пролить некоторый свет на это?Не влияет ли SoapServer на max_execution_time
?
Редактировать: В моих тестах max_execution_time
установлено значение 5 минут, но моя программа работает часами.
Решение
Если в max_execution_time
имеет значение 0 либо в вашем php.ini, либо с помощью ini_set()
или set_time_limit()
в вашем сценарии тогда не было бы никаких ограничений.Может ли это быть причиной?
Редактировать:Кроме того, я только что заметил это в руководство пользователя:
Примечание:Функция set_time_limit() и конфигурационная директива max_execution_time влияют только на время выполнения самого скрипта.Любое время, потраченное на действия, которые происходят вне выполнения скрипта, такие как системные вызовы с использованием system(), потоковые операции, запросы к базе данных и т.д.не учитывается при определении максимального времени выполнения скрипта.Это неверно в Windows, где измеренное время является реальным.
Возможно, вас не сокращают, потому что большая часть времени тратится на потоковую передачу данных или выполнение запросов, которые, согласно этому, не будут засчитываться в лимит времени.