Войти
ПрограммированиеФорумВеб

django асинхроная функция

#0
15:08, 4 окт. 2014

как на джанго попроще запустить асинхронную функцию?

( чтобы продолжилось одновременное выполнени view и функции ... сорри если перевираю термины )

как при следующем запросе пользователя view посмотреть в нем завершена ли асинхронная фукнция?


#1
12:17, 6 окт. 2014

При 1-ом вызове вьюшки создаём запись в базе (или кэше) со статусом операции и запускаем фоновый процесс/поток/что угодно, который посчитает всё, обновит запись в базе и завершится.

Пользователю возвращаем ответ, что дескать надо ходить за статусом операции по такому-то адресу.

Пользователь, например, раз в секунду шлёт запрос «получить статус операции» по указанному адресу, пока в ответе не получит, что она звершена. В это время в интерфейсе ему крутим какие-нибудь часики или прогрессбар.


Если как проще всё это сделать, то можно взять какую-нибудь библиотеку для асинхронной обработки.

Я же обычно делаю фоновый процесс, который обрабатывает все такие «длительные» операции, а данные шлю ему через amqp. Это позволяет сделать эти сущности независимыми и не ломать работу всего сервиса, если что-то сломается в обработке длительных операций.

Вот, может будет полезно: http://tiendil.org/pages/webdev/

#2
15:27, 7 окт. 2014

Tiendil
а можно пример кода или ссылку на туториал?

#3
15:33, 7 окт. 2014

despair1
> а можно пример кода или ссылку на туториал?
Под рукой ничего похожего нет, к сожалению.

ПрограммированиеФорумВеб

Тема в архиве.