Портал Python-программистов

Форумы сайта python.su

Вы не зашли.

Объявление

Официальная wiki коммунити: wiki.python.su обсуждение

Официальная джаббер конференция коммунити: pythonua@conference.jabber.ru (всегда 20-35 онлайн участников). Настройки

КОД ОБОРАЧИВАТЬ В ТЕГИ [code][/code]
  • > TurboGears
  • > Долгоиграющие запросы [RSS Feed]

#1 2007-08-13 16:11:05

PooH
Питонер
Откуда: Барнаул
Зарегистрирован: 2006-12-05
Сообщений: 798
Профиль

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

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

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

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

Отредактированно PooH (2007-08-13 16:11:48)

Неактивен

 

#2 2007-08-13 17:35:45

pythonwin
Команда
Откуда: за компом
Зарегистрирован: 2006-07-18
Сообщений: 1293
Профиль

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

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

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

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


...мир скучен для скучных людей. Сократ.
язык Python
framework TurboGears
форум по TurboGears

Неактивен

 

#3 2007-08-13 19:31:31

dem
Питонер
Откуда: Kiev
Зарегистрирован: 2006-06-02
Сообщений: 44
Профиль

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

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

Неактивен

 

#4 2007-08-13 20:53:47

j2a
py-зилот
Откуда: Омск
Зарегистрирован: 2006-06-29
Сообщений: 869
Профиль  Вебсайт

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

PooH написал:

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

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

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

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


Be easy, stay cool and follow the killer rabbit

Неактивен

 

#5 2007-08-13 22:18:30

Андрей Светлов
Команда
Откуда: Киев
Зарегистрирован: 2007-05-15
Сообщений: 1504
Профиль

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

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

Отредактированно Андрей Светлов (2007-08-13 23:16:42)

Неактивен

 

#6 2007-08-14 08:32:25

PooH
Питонер
Откуда: Барнаул
Зарегистрирован: 2006-12-05
Сообщений: 798
Профиль

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

pythonwin написал:

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

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

Неактивен

 

#7 2007-08-14 08:38:23

PooH
Питонер
Откуда: Барнаул
Зарегистрирован: 2006-12-05
Сообщений: 798
Профиль

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

Андрей Светлов написал:

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

я пока думаю сделать наподобие Межпроцессная диспетчеризация событий в web-приложениях Python, часть 2

Неактивен

 

#8 2008-06-24 17:12:01

PyCraft
Питонер
Зарегистрирован: 2008-05-23
Сообщений: 77
Профиль

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

PooH написал:

после этого скрипт из броузера периодически запрашивает процент выполнения задачи.

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

Неактивен

 

#9 2008-06-25 06:29:25

PooH
Питонер
Откуда: Барнаул
Зарегистрирован: 2006-12-05
Сообщений: 798
Профиль

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

PyCraft написал:

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

Никак smile В таком случае буду оптимизировать базу под запрос

Неактивен

 

Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson

Board footer

Реклама: