Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 19, 2007 10:29:09

jan2ary
От:
Зарегистрирован: 2006-11-21
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс обработки формы

Доброго времени суток.

Есть длительная операция (3-5 минут), которая обрабатывается методом save модели. Форма создается из экземпляра модели. Операция состоит из нескольких этапов. Хотелось бы показывать пользователю, какой этап выполняется именно сейчас, чтоб он, бедняга, совсем не разуверился в жизни.
Средствами ajax когда-то делал, но как здесь эту возможность использовать, даже не представляю. Подтолкните в правильном направлении, пожалуйста…

Спасибо.

Обновлено: Сейчас во вьюшке создаю форму из класса формы, вся обработка только во вьюшке. Так что безмодельный вариант тоже интересен.



Отредактировано (Сен. 19, 2007 13:02:36)

Офлайн

#2 Сен. 19, 2007 13:46:36

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Прогресс обработки формы

jan2ary
Есть длительная операция (3-5 минут), которая обрабатывается методом save модели
не очень хорошо. лучше это делать отдельным потоком, или вообще процессом по расписанию.
jan2ary
Средствами ajax когда-то делал, но как здесь эту возможность использовать, даже не представляю.
А ничего не меняется, надо по таймеру обращаться к серверу за новой порцией информации о процессе выполения.
Но суть всё та же. Пользователю нужно как можно скорее отдать страницу и не заставлять его ждать минуты. Как на youtube напрмер.



Офлайн

#3 Сен. 26, 2007 12:34:41

jan2ary
От:
Зарегистрирован: 2006-11-21
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс обработки формы

Так и сделал. View формы запускает отдельный поток, обрабатывающий запрос, форма же отдается сразу. Поток обработки сохраняет состояние обработки в SessionStore, а отдельное примитивное view отвечает на ajax-запросы о статусе от клиента, доставая состояние из SessionStore.
Вот :)



Офлайн

#4 Сен. 30, 2007 17:31:38

jan2ary
От:
Зарегистрирован: 2006-11-21
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс обработки формы

Вот только почему-то больше двух обработок в одной сессии (в нескольких табах фф, например) не хотят сохраняться в объекте сессии. Возможно, сессия - не лучшее место для хранения и обмена данными при параллельной обработке в джанго? Грешил на sqlite3, очень уж простая база, но с OracleXE то же самое. Если нужно, тестовый проект могу выложить.



Офлайн

#5 Окт. 2, 2007 17:24:10

Maximbo
От:
Зарегистрирован: 2006-11-04
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс обработки формы

Разве SessionStore не фиолетово что сохранять? Главное – чтобы ключи были уникальными.



Офлайн

#6 Окт. 3, 2007 10:58:17

jan2ary
От:
Зарегистрирован: 2006-11-21
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс обработки формы

Вот я тоже так думал. Ключи генерил случайные:

''.join(random.sample(string.ascii_letters, 16))

Ан нет…



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version