flaskを用いて集めたデータをxlsxでダウンロードしたいがタイムアウトしてしまう。
flaskを使ってアンケートを取り、それをテンプレートのxlsxを読み込んで出力するサイトを構築しました。
しかし、オフラインではうまくいったのですがオンライン上ではInternal Server Errorになってしまいます。
おそらく処理がタイムアウトしてしまっているのだと思います。
処理を軽くする方法や、代替案などがありましたら教えていただきたいです。
データはsqliteのデータを読み込んで使っています。
プログラミングを勉強し始めたばかりなので根本的な指摘などもあれば頂きたいです。
使用しているライブラリ : sqlite3, openpyxl, io.bytesio, flask.make_response
使用しているPaaS : Azure(無料枠)
output = io.BytesIO()
wb = openpyxl.load_workbook('data/template.xlsx')
worksheet = wb.get_sheet_by_name('sheet1')
for x,data in enumerate(datas):
worksheet.cell(row=3+x, column=2).value = int(get_user_transport(data)
worksheet.cell(row=3+x, column=3).value = int(get_user_payment(data)
worksheet.cell(row=3+x, column=4).value = data["user_name"]
for i,day in enumerate(day_list):
if data[day] == "0":
pass
else:
worksheet.cell(row=3+x, column=5+(i*3)).value = int(data[day].split("-")[0])
worksheet.cell(row=3+x, column=6+(i*3)).value = int(data[day].split("-")[1])
wb.save(output)
output.seek(0)
response = make_response()
response.data = output.read()
response.headers['Content-Disposition'] = 'attachment; filename=' + file_name
response.mimetype = XLSX_MIMETYPE
output.close()
return response