Одновременный запуск django функций в views.py?, celery с последующим рендерингом текщей страницы?, или поэтапная выдача результата рендеринга юзеру?
в моем views.py есть функция, которая вызывает еще 5 функций. В шаблоне я использую результат основнго запроса и общий результат 5 дополнительных функций. (все дело в том, что я могу отправлять в функцию multi только 20 значений из списка основной функции). Получается я должен 5 раз пройти функцию multi, чтобы собрать весь список final. Итоговое время от запуска и до конца - более 150 секунд. Это очень долго. Мне очень нужна помощь. Первый основной запрос отрабатывает за 5-10 секунд. Первый запрос + первая функция multi отрабатывают за 15-25 секунд. но когда эта компания работает вся вместе(запрос + 5 функций) = 150+ секунд. Я знаю, что это можно решить несколькими методами: меня устроили бы следующие варианты
параллельный запуск функций multi c задержкой 1 секунда? (задержка должна быть - это условие сервера, на который я отправляю запрос)
показать пользователю страницу (таблица) с результатами listdata, и загрузка в прямом эфире недостающих значений из списка final частично по мере отработка каждой из 5 функций.
celery?
help please
def index(request):
def multi(keys):
response = requests.get(url1+keys)
data1 = response.json()
listdata1 = data1['output']
for i in listdata1:
final.append(i)
return final
response = requests.get(url)
data = response.json()
listdata = data['results']
final = []
list1 = listdata[0:20]
list2 = listdata[20:40]
list3 = listdata[40:60]
list4 = listdata[60:80]
list5 = listdata[80:]
multi(list1)
multi(list2)
multi(list3)
multi(list4)
multi(list5)
return render(request, 'index.html',{'final':final, 'listdata':listdata})