Как сделать так, чтобы Django возвращал шаблон, но продолжал выполнять процесс после возвращения шаблона? - PullRequest
2 голосов
/ 25 января 2012

Я довольно новичок в веб-разработке, поэтому я просто пытаюсь понять, правильно ли я представляю себе то, что я пытаюсь сделать. Простите, если какая-то терминология неверна. Мое приложение Django должно выполнять следующие действия:

  1. Пользователь загружает файл через браузер
  2. Файл обрабатывается сервером (может занять до часа)
  3. Пользователь видит результаты в своем браузере

У меня проблемы с выполнением шага 2 ... вот что я думаю:

1. Пользователь загружает файл (довольно просто)

2.Файл обрабатывается - функция просмотра будет выглядеть примерно так:

def process(request):
    a. (get file from the request)
    b. (return a page which says "the server is running your job, results will be available in {ETA}") 
    c. (start processing the data)

3. Пользователь видит результаты в своем браузере - Браузер регулярно запрашивает сервер, чтобы увидеть, выполнена ли работа. Когда работа готова, браузер получает результаты.

У меня вопрос: на шаге 2, части b и c, как я могу вернуть ответ браузеру, не дожидаясь завершения процесса? Или как я могу убедиться, что процесс продолжает работать после того, как я возвращаю результаты в браузер? В идеале процесс должен иметь доступ к переменным окружения Django, поскольку он будет работать с базой данных через интерфейс Django.

1 Ответ

6 голосов
/ 25 января 2012

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

...