Форум сайта python.su
А как почтенные питонеры реализуют подобные вещи: расчет по базе, массивные отчеты и т.д.
Пока имею такую идею: запустить отдельный процес, слушающий на отдельном порту, который ведет очередь задач, обработчик запроса обращается к нему, ставит задачу в очередь и возвращает форму с индикатором. после этого скрипт из броузера периодически запрашивает процент выполнения задачи.
Может есть варианты попроще?
Отредактировано (Авг. 13, 2007 15:11:48)
Офлайн
сложные запросы делал на чистом SQL и передавал виджету, который превращал это дело в html-таблицу и если ajax, то отдавал
return dict(table_html = Table.render()) b на стороне клиента вставлял в div или другой тег, а пока загружалась табличка выводил на экран рисунок gif с прогрессбаром
насчет процентов - как при выполнении запроса sql узнать на сколько он выполнился?
PS предлагаю разбить на части эту задачу:
- выполнение запроса
- обработка запроса
- передача данных клиенту
- вставка данных на клиенте
Офлайн
В самом простом случае, можно просто анимашку показывать - “аля запрос еще не умер” :) Потому как расчитать сколько процентов осталось до окончания выборки из SQL… но может и далал кто - так поделитесь.
Офлайн
PooHВсё правильно. Только настолько долгоиграющие отчеты обычно по почте отправляются, а не браузером показываются. Т.е. да, запустить можно из браузера, но результат - по почте.
А как почтенные питонеры реализуют подобные вещи: расчет по базе, массивные отчеты и т.д.
Пока имею такую идею: запустить отдельный процес, слушающий на отдельном порту, который ведет очередь задач, обработчик запроса обращается к нему, ставит задачу в очередь и возвращает форму с индикатором. после этого скрипт из броузера периодически запрашивает процент выполнения задачи.
Может есть варианты попроще?
Офлайн
Чисто технологическая деталь.
Я делал XMLRPC сервер. На twisted.web. Но можно и на чем попроще.
Очень легко пишется, с протоколом общения проблем нет. А на более легковесный (бинарный, например) формат потом легко перейти. Обычно переходить не нужно - все и так хорошо :)
Отредактировано (Авг. 13, 2007 22:16:42)
Офлайн
pythonwinУ меня расчет выполняется уже в приложении, в него периодически входят периодические значения :)
насчет процентов - как при выполнении запроса sql узнать на сколько он выполнился?
Офлайн
Андрей Светловя пока думаю сделать наподобие Межпроцессная диспетчеризация событий в web-приложениях Python, часть 2
Чисто технологическая деталь.
Я делал XMLRPC сервер. На twisted.web. Но можно и на чем попроще.
Очень легко пишется, с протоколом общения проблем нет. А на более легковесный (бинарный, например) формат потом легко перейти. Обычно переходить не нужно - все и так хорошо :)
Офлайн
PooHА если задача состоит из одного SQL сапроса, как Вы собираетесь определять процент ее выполнения?
после этого скрипт из броузера периодически запрашивает процент выполнения задачи.
Офлайн
PyCraftНикак :) В таком случае буду оптимизировать базу под запрос
А если задача состоит из одного SQL сапроса, как Вы собираетесь определять процент ее выполнения?
Офлайн