URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3115
[ Назад ]

Исходное сообщение
"Проблемы с CGI"

Отправлено rocsolanka , 24-Фев-05 14:45 
Добрый день! Не могу решить следующую проблему: Есть CGI скрипт, который выполняется достаточно долго.(т.к. запускает sql скрипт,который работает с большой БД ). Так вот, браузер не дожидается окончания работы скрипта и выдает ошибку "Сервер недоступен". Кроме того, браузер сам пытается переконектится, в результате чего у меня запускается 2 копии sql скрипта. Как решить такую проблему?

Содержание

Сообщения в этом обсуждении
"Проблемы с CGI"
Отправлено dev , 25-Фев-05 13:44 
>Добрый день! Не могу решить следующую проблему: Есть CGI скрипт, который выполняется
>достаточно долго.(т.к. запускает sql скрипт,который работает с большой БД ). Так
>вот, браузер не дожидается окончания работы скрипта и выдает ошибку "Сервер
>недоступен".

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

>Кроме того, браузер сам пытается переконектится, в результате чего у
>меня запускается 2 копии sql скрипта. Как решить такую проблему?

Создавать лок где-нибудь при старте скрипта и удалять его при завершении. Не забыть про аварийное завершение скрипта.


"Проблемы с CGI"
Отправлено rocsolanka , 25-Фев-05 16:07 
А нет ли возможности просто увеличить таймаут для браузера, чтоб ждал окончания скрипта подольше?


>>Добрый день! Не могу решить следующую проблему: Есть CGI скрипт, который выполняется
>>достаточно долго.(т.к. запускает sql скрипт,который работает с большой БД ). Так
>>вот, браузер не дожидается окончания работы скрипта и выдает ошибку "Сервер
>>недоступен".
>
>Надо запускать этот скрипт в фоне, а юзеру показывать страничку с прогресс-баром
>и обновлять ее каждые несколько секунд.
>
>>Кроме того, браузер сам пытается переконектится, в результате чего у
>>меня запускается 2 копии sql скрипта. Как решить такую проблему?
>
>Создавать лок где-нибудь при старте скрипта и удалять его при завершении. Не
>забыть про аварийное завершение скрипта.



"Проблемы с CGI"
Отправлено XAnder , 28-Фев-05 19:25 
>Добрый день! Не могу решить следующую проблему: Есть CGI скрипт, который выполняется достаточно долго.(т.к. запускает sql скрипт,который работает с большой БД ). Так вот, браузер не дожидается окончания работы скрипта и выдает ошибку "Сервер недоступен". Кроме того, браузер сам пытается переконектится, в результате чего у меня запускается 2 копии sql скрипта. Как решить такую проблему?

Интересно ведёт себя Ваш браузер. Кстати, какой он породы?

>А нет ли возможности просто увеличить таймаут для браузера, чтоб ждал окончания скрипта подольше?

Даже если и можно, не советую так поступать. Во-первых, браузеров много и под всех не подстроишься. Во-вторых, кроме браузера есть ещё и юзер, который его мышкой тыкает :) Ентому юзвЕрю может надоесть ждать и он тыкнет на обновление странички, а Вы вернётесь к той же проблеме.

Вообще, dev дело говорит - прислушайтесь. Я же от себя добавлю такой рецепт:

1. оптимизируйте запросы к БД до предела;

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

3. если не поможет, попробуйте перепроектировать БД с прицелом на скорость, можно пойти на денормализацию в разумных пределах;

4. если не поможет, смотрите глобальнее: меняйте soft- и hardware, если, конечно, позволяют средства;

5. если добрались до этого пукта, то всё - затык, сделать хорошо не получается - сделайте, чтобы хотя бы выглядело хорошо (уж не пана ли Вильяма Гейтса это прынцип? :) ), то есть, делайте прогресс-бар и всё такое.


"Проблемы с CGI"
Отправлено rocsolanka , 01-Мрт-05 14:46 
Спасибо, уже сделала прогресс-бар :-)


Добрый день! Не могу решить следующую проблему: Есть CGI скрипт, который выполняется достаточно долго.(т.к. запускает sql скрипт,который работает с большой БД ). Так вот, браузер не дожидается окончания работы скрипта и выдает ошибку "Сервер недоступен". Кроме того, браузер сам пытается переконектится, в результате чего у меня запускается 2 копии sql скрипта. Как решить такую проблему?
>
>Интересно ведёт себя Ваш браузер. Кстати, какой он породы?
>
>>А нет ли возможности просто увеличить таймаут для браузера, чтоб ждал окончания скрипта подольше?
>
>Даже если и можно, не советую так поступать. Во-первых, браузеров много и
>под всех не подстроишься. Во-вторых, кроме браузера есть ещё и юзер,
>который его мышкой тыкает :) Ентому юзвЕрю может надоесть ждать и
>он тыкнет на обновление странички, а Вы вернётесь к той же
>проблеме.
>
>Вообще, dev дело говорит - прислушайтесь. Я же от себя добавлю такой
>рецепт:
>
>1. оптимизируйте запросы к БД до предела;
>
>2. если не поможет, оптимизируйте саму БД, играйтесь с типами столбцов, с
>индексами и т.п. техническими деталями;
>
>3. если не поможет, попробуйте перепроектировать БД с прицелом на скорость, можно
>пойти на денормализацию в разумных пределах;
>
>4. если не поможет, смотрите глобальнее: меняйте soft- и hardware, если, конечно,
>позволяют средства;
>
>5. если добрались до этого пукта, то всё - затык, сделать хорошо
>не получается - сделайте, чтобы хотя бы выглядело хорошо (уж не
>пана ли Вильяма Гейтса это прынцип? :) ), то есть, делайте
>прогресс-бар и всё такое.



"Проблемы с CGI"
Отправлено Tenkoff , 13-Мрт-05 07:44 
есть решение проще, если сильно не времени решить сразу
выдаем в OUTPUT клиенту нечто вроде

расставь по коду в разных функциях, чтобы клиенту постоянно шел траф, и браузер не обрывал по таймауту

print "<!--working--!>\n";