Скрипт потока PHP прерван

У меня есть php-скрипт, который запускается каждый час на моем сервере (поток). Что делает этот поток, так это то, что пользователь может загружать файлы Excel с данными, поток сравнивает данные в файле Excel с данными в базе данных и что-то делает (не имеет отношения к некоторым вставкам в базу данных, если найденные строки не существуют). Чтобы прочитать файл excel, я вызываю:

$data = new Spreadsheet_Excel_Reader();
$data->read($file);

пользователь может загружать больше файлов xls на сервер с именем: File_1.xls, File_2.xls, File_3.xls я читаю первый файл получаю все данные делаю все сравнения делаю все вставки это может занять некоторое время иногда более 6000 строки в excel. Я заметил, что если поток работает слишком долго, например, он может вставить файл 1 и файл 2, а файл большой, например, 6000+ строк, я получаю сообщение об ошибке в своем журнале ошибок. Я думаю, что это ошибка читателей Excel. Любые идеи?


person Barta Tamás    schedule 15.11.2012    source источник
comment
Какое именно сообщение об ошибке вы получаете?   -  person Ja͢ck    schedule 15.11.2012
comment
Прервано. Это все. Не могу с этим работать... :D   -  person Barta Tamás    schedule 15.11.2012


Ответы (1)


Насколько я понимаю, на вашем сервере недостаточно памяти (ОЗУ) для хранения нескольких указателей файлов и данных большого массива. Увеличьте объем памяти вашего сервера или попробуйте другой алгоритм чтения данных из XLS для выполнения вставки сравнения.

person Rockstar    schedule 15.11.2012
comment
не уверен в этом. Потому что, когда я импортирую 60-тысячную строку Excel, сначала сценарий читает ее без проблем, а затем идет маленькая и останавливается. - person Barta Tamás; 15.11.2012
comment
я только что заметил, что использую unset() в своих массивах, прежде чем я прочитаю второй файл, это может быть проблемой? - person Barta Tamás; 15.11.2012
comment
хорошо, нашел ошибку, вы не можете отменить () частную переменную... которая вызвала ошибку прерывания... - person Barta Tamás; 15.11.2012