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