При написании php грабберов или сборщиков часто возникает ситуация, когда скрипты по неизвестной причине "вырубаются". Существует несколько причин такого поведения скриптов:
1. Нехватка памяти - в этом случае нужно выделить скрипту больше памяти. Установка нужного значения memory_limit в php.ini решает проблему.
2. Ошибки. Они могут возникать в процессе загрузки и парсинга страницы. Иногда сервер выдает ошибку с надписью Service Unavailable, это значит что он перегружен. Вместо контента парсер а именно зачастую функции preg_match_all парсит именно эту надпись :) или вообще пустой контент. Избежать возникновение ошибок в такой случае можно простой проверкой if (@$content!="") или же if (@preg_match_all(...)).
3. Для "вечной" работы скриптов используйте функции set_time_limit (0); ignore_user_abort (true);
Если ваш скрипт все-равно "падает" его нужно "посадить на крон" при этом реализовать функцию сохранения текущего состояния процесса для того чтобы при перезапуске скрипт продолжил работу с прерванного места.
Читайте далее о том Как посадить php скрипт на крон?
1. Нехватка памяти - в этом случае нужно выделить скрипту больше памяти. Установка нужного значения memory_limit в php.ini решает проблему.
2. Ошибки. Они могут возникать в процессе загрузки и парсинга страницы. Иногда сервер выдает ошибку с надписью Service Unavailable, это значит что он перегружен. Вместо контента парсер а именно зачастую функции preg_match_all парсит именно эту надпись :) или вообще пустой контент. Избежать возникновение ошибок в такой случае можно простой проверкой if (@$content!="") или же if (@preg_match_all(...)).
3. Для "вечной" работы скриптов используйте функции set_time_limit (0); ignore_user_abort (true);
Если ваш скрипт все-равно "падает" его нужно "посадить на крон" при этом реализовать функцию сохранения текущего состояния процесса для того чтобы при перезапуске скрипт продолжил работу с прерванного места.
Читайте далее о том Как посадить php скрипт на крон?
0 коммент.:
Отправить комментарий