Имеется view, которая выдает excel с графиком. Единственная проблема, которая всегда присутствовала: долгое ожидание предложения загрузить сгенерированный файл.
Сегодня запрос начал уходить в 504, в связи с чем я сделал простой замер с помощью time. От запроса до самого
return response проходит всего 14 секунд. После чего приходится ждать еще столько же, чтобы браузер отдай файл.
Поискав похожие темы на SOF выяснилось, что можно решить проблему увеличением значения time-out в конфигурации Apache.
Однако главный вопрос остается: почему происходит такое длительное ожидание ПЕРЕД отдачей файла (запросы к БД, генерация графиком и т.д. происходит быстро). И как это можно ускорить?
Приведу пример кода:
response = HttpResponse(content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename=%s.xlsx' % date.today()
response.write(output.getvalue())
end = time.clock()
print(10, "%.2gs" % (end-start)) # 14 секунд с запроса -- ОК
return response # после чего долгое ожидание, с сегодняшнего дня приводящее к ошибке 504.