Django — Асинхронное использование службы RESTful

#python #django #rest

#python #django #rest

Вопрос:

Мне нужно создать веб-портал django, в котором пользователи могут выбирать и запускать специальные отчеты, предоставляя значения через формы параметрам, определенным в каждом конкретном отчете. Представление, которое обрабатывает запросы пользователя на выполнение отчета, должно выполнять вызовы службы RESTful на удаленный сервер отчетов Jasper, где генерируется фактический результат.

Я уже написал клиент для выполнения вызовов службы RESTful на удаленном сервере. В зависимости от размера отчета вызовы службы могут занимать несколько минут.

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

Нужно ли мне выполнять вызов AJAX при отправке формы параметров или я должен запустить новый поток для клиента RESTful в представлении после проверки формы? Или что-то еще?

Комментарии:

1. Похоже, мне нужно исследовать Сельдерей

Ответ №1:

django-celery — популярный выбор для асинхронных задач, я обычно использую greenlets, поскольку привык к ним.

Затем, чтобы уведомить пользователя, вы можете использовать платформу уведомлений, чтобы сообщить клиенту, что что-то сделано.