Обновление скрипта останавливается случайным образом - PullRequest
0 голосов
/ 23 июня 2009

Я работаю над одноразовым скриптом PHP (5.2.6), который переносит несколько миллионов строк базы данных MySQL (5.0.45) в другой формат в другой таблице, сохраняя (много) соответствующих данных в памяти для инкрементные вычисления. Данные рассчитываются постепенно. (кусками около 1000 строк)

Скрипт неожиданно останавливается в случайных точках без сообщения об ошибке. У меня вопрос - как я могу узнать причину остановки скрипта. (нехватка памяти? тайм-аут из-за MySQL и т. д.)

У меня есть set_time_limit (0); так что это не тайм-аут PHP.

Ответы [ 5 ]

2 голосов
/ 23 июня 2009

см. Файл журнала, наверное это память

вам нужно добавить больше памяти в php.ini до memory_limit параметр

1 голос
/ 24 июня 2009

Вы пытались запустить PHP из командной строки, а не через веб-браузер? Может быть, на сервере есть что-то, что вызывает его падение при достижении определенного объема памяти?

Как правило, массовые операции не должны выполняться через веб-сервер, они могут частично завершиться с ошибкой.

1 голос
/ 23 июня 2009
  • Проверьте ваш лог-файл PHP.
  • Включить все отчеты об ошибках
    • error_reporting(E_ALL | E_STRICT);
1 голос
/ 23 июня 2009

Вы можете попытаться повысить уровень сообщений об ошибках (в php.ini), чтобы он жаловался на большее.

Моим первым предположением было бы то, что вы достигли ограничения по времени выполнения или памяти, и сценарий был прерван, но вы покрыли это.

0 голосов
/ 24 июня 2009

Спасибо всем за помощь (я голосовал за соответствующие ответы). Проблема заключалась в памяти и настройке ini_set («memory_limit», «200M»); решил (это один раз сценарий)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...