Автор Тема: Таймаут на время ответа сервера при больших POSTах  (Прочитано 3702 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Есть такая проблема: у некоторых пользователй скрипта при отправке большого объема данных возникает проблема - броузер выдает окно, типа сервер не отвечает и т.д.

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

Как с этим бороться?
:) у меня самого такого нет, но жалуются люди..
 в исканиях.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
off: sorry за предыдущий "ответ" (случайно нажал)

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

Кстати, а через какое время наступает таймаут в вашем случае?
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
Кстати, а через какое время наступает таймаут в вашем случае?

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

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

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

ситуация такая:
человек закидывает в форму статью, жмет сабмит ну и потом после того как скрипт ее закинет в БД, показывает страницу - "Все ОК!".
Соответственно, надо бы убедится что действительно все ОК, прежде чем ;) писать об этом..
 в исканиях.

Оффлайн Kostya

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 19
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
А разве дело не в этой директиве апач
Timeout 300

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Green Kakadu
Я сначала подумал, что дело в долгой генерации ответа (она должна решаться), а не в долгом получении данных.
Цитировать
Например, у меня все ОК, можно запостить 15/20/30кб
У многих тоже проблем нету.
А вот у кого-то не получается закинуть статью более 3кб

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

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

В смысле выталкивать какие-то куски (хоть html-комментарии), чтобы ожидание ответа сервера не было слишком долгим. Сам не пробовал.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Kostya
Цитировать
А разве дело не в этой директиве апач
Timeout 300

Не, не о том речь. Если я правильно понял проблему, настройки сервера, на котором работает этот скрипт, не является лимитирующим фактором.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
А разве дело не в этой директиве апач
Timeout 300
Не, не о том речь. Если я правильно понял проблему, настройки сервера, на котором работает этот скрипт, не является лимитирующим фактором.

Вроде бы не то (т.е. я не говорю конкретно, т.к. сам не знаю) - дело не в ограничении времени работы скрипта сервером.
Наверное стоит попробовать генерить какието куски ответа в процессе обработки (как YA предложил), может просто кто-то с этим сталкивался...
На локалхосте вообще с этим нет проблем - хоть 100 килобайтную статью можно запостить
 в исканиях.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
Вроде бы не то (т.е. я не говорю конкретно, т.к. сам не знаю) - дело не в ограничении времени работы скрипта сервером.

Если нет уверенности, то надо сначало точно проверить по логам.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
Если нет уверенности, то надо сначало точно проверить по логам.

;) так это ж не ошибка скрипта, там нету ничего.
 в исканиях.

Оффлайн Kostya

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 19
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
у некоторых пользователй скрипта при отправке большого объема данных возникает проблема

Собири данные о этих некоторых (браузер, ос , ip,....). Может есть какая закономерность.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
так это ж не ошибка скрипта, там нету ничего.

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28