Добрый день, прошу совета как организовать работу приложения.
Например, пользователь заходит на сайт и загружает какой-то файл, который в последующем на сервере обрабатывается, обрабатываться он будет не пару секунд (в общем не быстрый процесс).
Пользователю так же нужно потом получить уведомление о том, что файл успешно обработан.
Делать обработку во вьюхе считаю плохим вариантом, т.к если одновременных клиентов будет много, то это может затормозить систему.
Перекладывать выполнение долгой задачи на Celery? Пользователь отправил файл, он пришел на сервер и это задача из вьюхи передалась в Celery. Но как потом после того, как Celery закончит обработку сообщить об этом пользователю?
Пока на ум приходит только один вариант, это использовать связку Redis+Tornado+SockJS для реал-тайма. Celery обработал файл сделал Publish в Redis, который потом подхватывается Tornado и сообщение уже по вэб сокетам отправляется клиенту.
Или есть более рациональные решения?
Как, например, это сделано в таких сервисах как Instagram? Там же тоже джанга и есть длительные обработки файлов (фотографий)?
Заранее спасибо.
Updated 11 Aug. 2015, 10:24 by mounty.