![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
tempman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 15.12.2006 Репутация: нет Всего: нет |
Здравствуйте.
У меня такой вопрос: Имеется cvs файл с допустим 100000 строк . По каждой строке происходят некоторые операции ( так же с запросом в бд ) а затем идет insert а таблицу. Все это занимает достаточно долгое время и вываливается в браузер ошибка 500 Internal Server Error. set_time_limit(0) (хотя запросов он не касается) чтбы браузер не скучал после каждой 1к записей шлю в браузер какие-нибудь данные ( с помощью ob_start(); ob_flush();) Оптимизацию запросов делаю по мере своих знаний и возможностей, но тут такая специфика, что просто надо сделать очень много запросов за один вызов скрипта. Подскажите , как заставить php скрипт дорабатывать до конца независимо от того , как долго он работает с БД. В идеале скрипт вообще должен висеть на кроне. Вызвать его кроном почаще и обрабатывать данные порциями можно, но хотелось бы все и сразу. Спасибо. С удовольствием приму ссылочку на хороший док, где можно почитать о массовых апдейтах и инсертах в БД. Спасибо. Это сообщение отредактировал(а) tempman - 22.2.2010, 14:57 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 3 Всего: 37 |
500 Internal Server Error - это не ошибка. Это сообщение о наличии ошибки.
Настоящая ошибка пишется в лог. После того, как станет известна ошибка, можно говорить дальше. Если в идеале скрипт должен работать из шелла, то не надо его запускать из браузера вовсе, и решать проблемы, которых все равно не будет при эксплуатации. |
|||
|
||||
tempman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 15.12.2006 Репутация: нет Всего: нет |
Искать в error.log ?
да, там появляется следующая ошибка: "Premature end of script headers: test_import.php" Это сообщение отредактировал(а) tempman - 22.2.2010, 16:21 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 3 Всего: 37 |
Ну, это тоже не ошибка.
Смотрим в phpinfo() значения настроек log_errors и error_reporting() и если они неправильные, то выставляем on и E_ALL в настройках Добавлено через 30 секунд а еще лучше - запускать сразу в шелле, как я уже сказал |
|||
|
||||
tempman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 15.12.2006 Репутация: нет Всего: нет |
стоит E_ERROR, я лог ошибок перенаправляю в свой файл и при выполнении этого скрипта ошибок никаких нет... я бы с удовольствием делал это под ssh, да только доступа пока что нету ![]() да и делают же как-то огромные апдейты и инсерты в базы .... Это сообщение отредактировал(а) tempman - 22.2.2010, 16:58 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 3 Всего: 37 |
Делают.
Но при этом все равно, при работе любого, отлаженного-переотлаженного скрипта все равно возникают ошибки. Поэтому надо не искать какой-то волшебный пуленепробиваемый способ, который работает всегда и везде, а исправлять возникающие ошибки. Но не всем это дано понять. жесть. вот это жесть. впервые вижу живого мазохиста. |
|||
|
||||
tempman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 15.12.2006 Репутация: нет Всего: нет |
||||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 3 Всего: 37 |
что значит "вроде допустим"?
я правильно понимаю, что лог с ошибками, по-вашему, приносит вред, но не сильный. И иногда его можно использовать? мазохизм - это запретить выод ошибок и сидеть, размышлять над причиной проблемы. Это сообщение отредактировал(а) Ипатьев - 22.2.2010, 18:55 |
|||
|
||||
tempman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 15.12.2006 Репутация: нет Всего: нет |
Приносит вред E_ALL выводимый на экран конечному юзверю.
А логировать ошибки это хорошо. Сам скрипт (частью которого является импорт) уже отлажен и польуется поэтому и вывод отключал. Но даже при E_ALL не вывалилось никаких ошибок. |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 3 Всего: 37 |
А E_ERROR не приносит? Если хорошо, то зачем себя ограничивать толко одним типом ошбки?
Вот это самая смешная вещь, которую я здесь когда-либо слышал. Две главные причины: 1. Не бывает полностью отлаженных программ. 2. Скрипт работает не в вакууме. Он работает в определенном окружении. И это окружение может измениться. Своевременно получив сообщение об ошибке, можно отследить это изменение, и исправить. Ну, теперь осталось самое неприятное - вернуться к нашим проблемам. Я не знаю, что еще можно посоветовать. Но я не очень верю в то, что никаких ошибок не возникает. Premature end of script headers означает, что скрипт умер молча. РНР скрипты не умирают молча. Если дать им возможность говорить. Во-первых, надо убедиться еще раз в получении снформации об ошибках. Внести, к примеру, какую-нибудь очевидную ошибку - функцию с неправильным параметром - и проверить - видим ли мы сообщение об ошибке. Во-вторых, надо выводить отладочную информацию по ходу работы скрипта. чтобы хотя бы узнать место, в котором он умирает |
|||
|
||||
tempman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 15.12.2006 Репутация: нет Всего: нет |
Нотисы или ерроры (если подставить какой-нибудь) логируются нормально.
А так молчит ... До дотошного дебага у меня еще руки не дошли , ну похоже придется , т.к. узнать что за оно нужно... кау будут результаты тут отпишусь Спасибо за участвие ![]() |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 4 Всего: 73 |
А можно взглянуть на отрывок кода, где происходит обработка строки из csv файла и ее последующая вставка в БД?
Если скрипт небольшой - можно целиком. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |