У меня есть небольшой проект django, который создает отчет XLSX, используя XlsxWriter, получая записи из базы данных, используя следующий «псевдо» код Python:
global myWorkbook
myWorkbook = Workbook("my_report.xlsx", {'constant_memory':true})
db_conn = databases.getDbConnection()
table1_thread = threading.Thread(target=generate_sheet, args=("table1", db_conn))
table1_thread.start()
table2_thread = threading.Thread(target=generate_sheet, args=("table2", db_conn))
table2_thread.start()
table3_thread = threading.Thread(target=generate_sheet, args=("table3", db_conn))
table3_thread.start()
table4_thread = threading.Thread(target=generate_sheet, args=("table4", db_conn))
table4_thread.start()
#Threads joining here...
db_conn.close()
return myWorkbook
Эти таблицы, которые я делаю в SELECT, действительноОгромный (около 50 тысяч строк) и создание отчета занимает много времени (от 2 до 8 минут).
В моем интерфейсе я хочу использовать ajax-запрос, чтобы начать генерацию отчета и показать«Кнопка загрузки», когда отчет выполняется в функции успеха ajax.
Но я столкнулся с проблемой тайм-аута после нажатия кнопки «Создать отчет». Я искал в интернете и обнаружил, что не могу изменить этот тайм-аут ajax.
Итак, я хотел бы сейчас: что я должен сделать для достижения этой цели? У меня нет возможности сохранять отчеты на сервере, потому что они тяжелые (около 40 ~ 60 МБ) и генерируются каждый день.