Cкрипт на php не возвращает ответ

1 234
savage
На сайте с 10.01.2007
Offline
224
#21
Rel:
Как результат? Не решилась проблема?

После закрытия базы 2000 записей уже обработал без ошибок, 4000 та же проблема. Сейчас еще UPDATE по id стал делать, еще лучше должно стать, экспериментирую пока.

set_time_limit(0); тоже оставил вначале кода.

УРА!! Всем спасибо! С обновлением по id 4000 записей загрузились за 197 секунд, но это только остатки. Сейчас буду пробовать с 8000 записями, но там уже код другой и операций значительно больше.

Особое спасибо Rel за закрытие соединения и LEOnidUKG за "топорный код" - сразу мозги на место вернулись :)

....причем в других таблицах ведь по индексам же апдейтится...

savage добавил 21.11.2011 в 04:20

А вот на 8200 записях опять такой же затык, база, и файлы закрываются, обновление по id, скрипт отрабатывает за 452 секунды, а браузер висит :(, как будто ответ от сервера не вернулся.

savage добавил 21.11.2011 в 09:26

Есть еще какие-нибудь идеи?

Купить / продать сайт ( https://www.telderi.ru/?pid=ca1f70 ) | Недорогой и надежный хостинг ( https://www.get-host.ru )
LEOnidUKG
На сайте с 25.11.2006
Offline
1748
#22

Сделайте внутри цикла условие в конце:

if ($k==8000) break;

А так же посмотрите, какое оно принимает значение.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
savage
На сайте с 10.01.2007
Offline
224
#23
LEOnidUKG:
Сделайте внутри цикла условие в конце:

if ($k==8000) break;
А так же посмотрите, какое оно принимает значение.

Скрипт отрабатывает 8000 записей, пишет в логфайл Прошло времени: 446 секунд, отработано 8000 записей, и должен по логике передать ответ в браузер, но не передает, а браузер все также висит.

Tortemon
На сайте с 09.07.2011
Offline
62
#24
savage:
а браузер все также висит.

Продолжает загружать страницу?

Веб и мобильная разработка [PHP, JS, Golang, Python, Java] (/ru/forum/998064)
savage
На сайте с 10.01.2007
Offline
224
#25
Tortemon:
Продолжает загружать страницу?

Угу ((((((

gormarket
На сайте с 29.12.2010
Offline
47
#26

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

Есть пара time-параметров в настройках апача, которые могут иметь похожую величину

TimeOut - таймер сервера Apache, который по-умолчанию установлен в 300 секунд (реально встречал значения 30 и даже 10 секунд).

В PHP5 есть функция apache_reset_timeout(), которую можно периодически вызывать в длительно работающих скриптах для сброса таймера.

и параметр ExpireTimeout тоже может быть 300 секунд, но судя по этой теме его недостаточная величина вызывает остановку выполнения скрипта, что не соответствует данному случаю.

savage, если у Вас PHP5 и доступна функция apache_reset_timeout(), попробуйте вставить ее в код.

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
savage
На сайте с 10.01.2007
Offline
224
#27
gormarket:
Есть пара time-параметров в настройках апача, которые могут иметь похожую величину

TimeOut - таймер сервера Apache, который по-умолчанию установлен в 300 секунд (реально встречал значения 30 и даже 10 секунд)..

TimeOut установил в 60000

gormarket:

В PHP5 есть функция apache_reset_timeout(), которую можно периодически вызывать в длительно работающих скриптах для сброса таймера.

А вот за это большое спасибо - щас, попробую!! PHP5!

:( Fatal error: Call to undefined function apache_reset_timeout() это при том что PHP Version 5.2.9

Пересобирать apache? Не повлияет ли это на работу директ-админа?

gormarket
На сайте с 29.12.2010
Offline
47
#28

savage, а у Вас случайно не стоит nginx в качестве фронтенда и Apache в качестве бэкенда.

Если так, то проблема может в nginx? (может он передает запрос клиента апачу, а ответа не дожидается ?)

savage
На сайте с 10.01.2007
Offline
224
#29
gormarket:
savage, а у Вас случайно не стоит nginx в качестве фронтенда и Apache в качестве бэкенда.

Вроде нет - nginx-а я в процессах не нашел.

gormarket
На сайте с 29.12.2010
Offline
47
#30

Могу еще посоветовать сделать вывод сообщений в скрипте, допустим через 100 или 500 шагов цикла (а не один раз после завершения цикла)

Встречал сообщения о том что помогает не падать длительным скриптам.

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий