У меня есть сценарий php, который очищает веб и вставляет очищенные данные в базу данных.
Этот php-скрипт выполняется очень долго (около пары часов).
Иногда, после долгого выполнения скрипта, скрипт php просто перестает выполняться и не показывает ошибок.
Проблема не вызвана из-за количества времени выполнения сценария, потому что я установил PHP-сценарий на неограниченное количество времени выполнения.
ini_set('max_execution_time', 0);
Я также установил скрипт php, чтобы показать все ошибки.
ini_set('display_errors',1);
error_reporting(E_ALL);
Но я не получаю ошибки после того, как скрипт php останавливает выполнение.
Я также запустил сценарий на нескольких других компьютерах и все еще сталкиваюсь с той же проблемой, поэтому проблема не связана с ограничениями сервера.
Я исследовал проблему и, очевидно, это проблема с сетью.
Скрипт php прекращает связь с сервером и отключается от него (возможно, из-за того, что скрипт php отправил http-запрос и не получил ответа).
У меня вопрос такой:
Можно ли как-то проверить наличие сетевых разрывов через php-скрипт, возобновить работу сценария и попытаться восстановить соединение, если было отключение от сети?
Во-первых, «set_time_limit» — лучший способ использовать эту функцию, и я бы проверил правила и нормы вашего сервера. Если это ваш частный сервер, то отлично. Если вы арендуете VPS или другой тип сервера, вполне возможно, что у них есть ограничения для предотвращения неправомерного использования, такие как спам и тому подобное. Убедитесь, что вы в пределах своих правил и идите оттуда.
Других решений пока нет …