Как разбить запрос django просмотров на несколько - PullRequest
0 голосов
/ 26 мая 2020

У меня есть приложение Django, которое выполняет множество различных анализов

Вот структура представления:

def analysis(request):
   making analysis 1 
    ...
   making analysis 2 
    ...
   making analysis 3 
    ...

    ........

   making analysis 50 
    ...
return render(request, 'checkapp/shots.html', var)

Проблема в том, что весь этот анализ занимает 1-2 минут. Во время разработки я тестировал свое приложение локально, и оно там нормально работает. Но когда я развернул его на Heroku, оказалось, что у heroku ограничение по таймауту 30 сек c.

Как я могу разделить этот процесс на несколько меньших, чтобы я мог получать ответы каждые 10 se c, например?

Или, может быть, есть другое решение моей проблемы?

1 Ответ

0 голосов
/ 26 мая 2020

Вы можете использовать фоновые задания для анализа, вместо того, чтобы помещать лог c анализа в представление.

Вы можете использовать celery tas k для каждого анализа, когда это необходимо .

Например:

@app.task()
def making_analysis_1(*args):
    ...
...