Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 13, 2007 15:11:05

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Долгоиграющие запросы

А как почтенные питонеры реализуют подобные вещи: расчет по базе, массивные отчеты и т.д.

Пока имею такую идею: запустить отдельный процес, слушающий на отдельном порту, который ведет очередь задач, обработчик запроса обращается к нему, ставит задачу в очередь и возвращает форму с индикатором. после этого скрипт из броузера периодически запрашивает процент выполнения задачи.

Может есть варианты попроще?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано (Авг. 13, 2007 15:11:48)

Офлайн

#2 Авг. 13, 2007 16:35:45

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Долгоиграющие запросы

сложные запросы делал на чистом SQL и передавал виджету, который превращал это дело в html-таблицу и если ajax, то отдавал
return dict(table_html = Table.render()) b на стороне клиента вставлял в div или другой тег, а пока загружалась табличка выводил на экран рисунок gif с прогрессбаром

насчет процентов - как при выполнении запроса sql узнать на сколько он выполнился?

PS предлагаю разбить на части эту задачу:
- выполнение запроса
- обработка запроса
- передача данных клиенту
- вставка данных на клиенте



Офлайн

#3 Авг. 13, 2007 18:31:31

dem
От:
Зарегистрирован: 2006-06-02
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Долгоиграющие запросы

В самом простом случае, можно просто анимашку показывать - “аля запрос еще не умер” :) Потому как расчитать сколько процентов осталось до окончания выборки из SQL… но может и далал кто - так поделитесь.



Офлайн

#4 Авг. 13, 2007 19:53:47

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Долгоиграющие запросы

PooH
А как почтенные питонеры реализуют подобные вещи: расчет по базе, массивные отчеты и т.д.

Пока имею такую идею: запустить отдельный процес, слушающий на отдельном порту, который ведет очередь задач, обработчик запроса обращается к нему, ставит задачу в очередь и возвращает форму с индикатором. после этого скрипт из броузера периодически запрашивает процент выполнения задачи.

Может есть варианты попроще?
Всё правильно. Только настолько долгоиграющие отчеты обычно по почте отправляются, а не браузером показываются. Т.е. да, запустить можно из браузера, но результат - по почте.



Офлайн

#5 Авг. 13, 2007 21:18:30

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Долгоиграющие запросы

Чисто технологическая деталь.
Я делал XMLRPC сервер. На twisted.web. Но можно и на чем попроще.
Очень легко пишется, с протоколом общения проблем нет. А на более легковесный (бинарный, например) формат потом легко перейти. Обычно переходить не нужно - все и так хорошо :)



Отредактировано (Авг. 13, 2007 22:16:42)

Офлайн

#6 Авг. 14, 2007 07:32:25

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Долгоиграющие запросы

pythonwin
насчет процентов - как при выполнении запроса sql узнать на сколько он выполнился?
У меня расчет выполняется уже в приложении, в него периодически входят периодические значения :)
, в хранимки его вынести тяжко будет. Поэтому узнать количество обсчитываемых объектов это копейки по сравнению с временем расчета.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#7 Авг. 14, 2007 07:38:23

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Долгоиграющие запросы

Андрей Светлов
Чисто технологическая деталь.
Я делал XMLRPC сервер. На twisted.web. Но можно и на чем попроще.
Очень легко пишется, с протоколом общения проблем нет. А на более легковесный (бинарный, например) формат потом легко перейти. Обычно переходить не нужно - все и так хорошо :)
я пока думаю сделать наподобие Межпроцессная диспетчеризация событий в web-приложениях Python, часть 2



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#8 Июнь 24, 2008 16:12:01

PyCraft
От:
Зарегистрирован: 2008-05-23
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

Долгоиграющие запросы

PooH
после этого скрипт из броузера периодически запрашивает процент выполнения задачи.
А если задача состоит из одного SQL сапроса, как Вы собираетесь определять процент ее выполнения?



Офлайн

#9 Июнь 25, 2008 05:29:25

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Долгоиграющие запросы

PyCraft
А если задача состоит из одного SQL сапроса, как Вы собираетесь определять процент ее выполнения?
Никак :) В таком случае буду оптимизировать базу под запрос



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version