PooH
Авг. 13, 2007 15:11:05
А как почтенные питонеры реализуют подобные вещи: расчет по базе, массивные отчеты и т.д.
Пока имею такую идею: запустить отдельный процес, слушающий на отдельном порту, который ведет очередь задач, обработчик запроса обращается к нему, ставит задачу в очередь и возвращает форму с индикатором. после этого скрипт из броузера периодически запрашивает процент выполнения задачи.
Может есть варианты попроще?
pythonwin
Авг. 13, 2007 16:35:45
сложные запросы делал на чистом SQL и передавал виджету, который превращал это дело в html-таблицу и если ajax, то отдавал
return dict(table_html = Table.render()) b на стороне клиента вставлял в div или другой тег, а пока загружалась табличка выводил на экран рисунок gif с прогрессбаром
насчет процентов - как при выполнении запроса sql узнать на сколько он выполнился?
PS предлагаю разбить на части эту задачу:
- выполнение запроса
- обработка запроса
- передача данных клиенту
- вставка данных на клиенте
dem
Авг. 13, 2007 18:31:31
В самом простом случае, можно просто анимашку показывать - “аля запрос еще не умер” :) Потому как расчитать сколько процентов осталось до окончания выборки из SQL… но может и далал кто - так поделитесь.
j2a
Авг. 13, 2007 19:53:47
PooH
А как почтенные питонеры реализуют подобные вещи: расчет по базе, массивные отчеты и т.д.
Пока имею такую идею: запустить отдельный процес, слушающий на отдельном порту, который ведет очередь задач, обработчик запроса обращается к нему, ставит задачу в очередь и возвращает форму с индикатором. после этого скрипт из броузера периодически запрашивает процент выполнения задачи.
Может есть варианты попроще?
Всё правильно. Только настолько долгоиграющие отчеты обычно по почте отправляются, а не браузером показываются. Т.е. да, запустить можно из браузера, но результат - по почте.
Андрей Светлов
Авг. 13, 2007 21:18:30
Чисто технологическая деталь.
Я делал XMLRPC сервер. На twisted.web. Но можно и на чем попроще.
Очень легко пишется, с протоколом общения проблем нет. А на более легковесный (бинарный, например) формат потом легко перейти. Обычно переходить не нужно - все и так хорошо :)
PooH
Авг. 14, 2007 07:32:25
pythonwin
насчет процентов - как при выполнении запроса sql узнать на сколько он выполнился?
У меня расчет выполняется уже в приложении, в него периодически входят периодические значения :)
, в хранимки его вынести тяжко будет. Поэтому узнать количество обсчитываемых объектов это копейки по сравнению с временем расчета.
PooH
Авг. 14, 2007 07:38:23
Андрей Светлов
Чисто технологическая деталь.
Я делал XMLRPC сервер. На twisted.web. Но можно и на чем попроще.
Очень легко пишется, с протоколом общения проблем нет. А на более легковесный (бинарный, например) формат потом легко перейти. Обычно переходить не нужно - все и так хорошо :)
я пока думаю сделать наподобие
Межпроцессная диспетчеризация событий в web-приложениях Python, часть 2
PyCraft
Июнь 24, 2008 16:12:01
PooH
после этого скрипт из броузера периодически запрашивает процент выполнения задачи.
А если задача состоит из одного SQL сапроса, как Вы собираетесь определять процент ее выполнения?
PooH
Июнь 25, 2008 05:29:25
PyCraft
А если задача состоит из одного SQL сапроса, как Вы собираетесь определять процент ее выполнения?
Никак :) В таком случае буду оптимизировать базу под запрос