Forum Webscript.Ru

Программирование => Perl => Тема начата: Green Kakadu от 25 Апреля 2002, 15:02:59

Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: Green Kakadu от 25 Апреля 2002, 15:02:59
Есть такая проблема: у некоторых пользователй скрипта при отправке большого объема данных возникает проблема - броузер выдает окно, типа сервер не отвечает и т.д.

Как я где-то на заборе прочитал, это связано с тем, что скрипт получает/обрабатывает данные, потом уже отвечает, и у некоторых (типа от интернет-провайдера зависит) этот промежуток времени "без ответа" (т.е. получение и обработка данных) не укладывается во время, отведенное на  ожидание ответа сервера, ну и соотв. последствия.

Как с этим бороться?
:) у меня самого такого нет, но жалуются люди..
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: YA от 25 Апреля 2002, 17:42:44
off: sorry за предыдущий "ответ" (случайно нажал)

С чужим интернет-провайдером вряд ли можно успешно бороться :) А вот отправлять данные по частям, не дожидаясь окончания работы скрипта, вполне реально.

Кстати, а через какое время наступает таймаут в вашем случае?
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: Green Kakadu от 25 Апреля 2002, 17:53:34
Цитировать
Кстати, а через какое время наступает таймаут в вашем случае?

в том то и дело - что это не у всех.
Например, у меня все ОК, можно запостить 15/20/30кб
У многих тоже проблем нету.
А вот у кого-то не получается закинуть статью более 3кб
:(

(размеры влияют, т.к. происходит обработка самого закидываемого текста)

Цитировать
А вот отправлять данные по частям, не дожидаясь окончания работы скрипта, вполне реально.

ситуация такая:
человек закидывает в форму статью, жмет сабмит ну и потом после того как скрипт ее закинет в БД, показывает страницу - "Все ОК!".
Соответственно, надо бы убедится что действительно все ОК, прежде чем ;) писать об этом..
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: Kostya от 25 Апреля 2002, 18:13:55
А разве дело не в этой директиве апач
Timeout 300
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: YA от 25 Апреля 2002, 18:46:41
Green Kakadu
Я сначала подумал, что дело в долгой генерации ответа (она должна решаться), а не в долгом получении данных.
Цитировать
Например, у меня все ОК, можно запостить 15/20/30кб
У многих тоже проблем нету.
А вот у кого-то не получается закинуть статью более 3кб

Да не повезло им... с провайдером :)
Могу предложить только вот что:
как альтернативный вариант предлагать заливать статью по частям или в архиве, а на сервере распаковывать - это если проблема в коннекте.
Цитировать
(размеры влияют, т.к. происходит обработка самого закидываемого текста)

А вот если проблема в длительной обработке, то:
Цитировать
отправлять данные по частям, не дожидаясь окончания работы скрипта

В смысле выталкивать какие-то куски (хоть html-комментарии), чтобы ожидание ответа сервера не было слишком долгим. Сам не пробовал.
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: YA от 25 Апреля 2002, 18:49:45
Kostya
Цитировать
А разве дело не в этой директиве апач
Timeout 300

Не, не о том речь. Если я правильно понял проблему, настройки сервера, на котором работает этот скрипт, не является лимитирующим фактором.
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: Green Kakadu от 25 Апреля 2002, 20:09:50
Цитировать
А разве дело не в этой директиве апач
Timeout 300
Не, не о том речь. Если я правильно понял проблему, настройки сервера, на котором работает этот скрипт, не является лимитирующим фактором.

Вроде бы не то (т.е. я не говорю конкретно, т.к. сам не знаю) - дело не в ограничении времени работы скрипта сервером.
Наверное стоит попробовать генерить какието куски ответа в процессе обработки (как YA предложил), может просто кто-то с этим сталкивался...
На локалхосте вообще с этим нет проблем - хоть 100 килобайтную статью можно запостить
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: YA от 25 Апреля 2002, 21:30:28
Цитировать
Вроде бы не то (т.е. я не говорю конкретно, т.к. сам не знаю) - дело не в ограничении времени работы скрипта сервером.

Если нет уверенности, то надо сначало точно проверить по логам.
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: Green Kakadu от 26 Апреля 2002, 00:27:10
Цитировать
Если нет уверенности, то надо сначало точно проверить по логам.

;) так это ж не ошибка скрипта, там нету ничего.
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: Kostya от 26 Апреля 2002, 11:06:50
Цитировать
у некоторых пользователй скрипта при отправке большого объема данных возникает проблема

Собири данные о этих некоторых (браузер, ос , ip,....). Может есть какая закономерность.
Название: Таймаут на время ответа сервера при больших POSTах
Отправлено: YA от 26 Апреля 2002, 22:33:45
Цитировать
так это ж не ошибка скрипта, там нету ничего.

Да, действительно - ничего. После timeout\'a у скрипта с бесконечным циклом удалось лишь добится записей типа "forcing termination of child #0 (handle 288)" в error.log и только при перезагрузке сервера. :) Это у меня на винде. А нормально настроеный рабочий сервер под *nix вроде бы и такой лажи допукать не должен. Хотя для данной темы это уже не важно.