Я разместил приложение Flask на Heroku, написанное на Python. У меня есть функция, которая выглядит примерно так:
@app.route("/execute")
def execute():
doSomething()
return Response()
Теперь проблема в том, что для выполнения doSomething()
требуется более 30 секунд, минуя 30-секундный тайм-аут Heroku, и это убивает приложение.
Я мог бы создать другой поток и выполнить внутри него doSomething()
, но объект Response
должен вернуть файл, который будет доступен только после того, как doSomething()
завершит выполнение.
Я также пытался работать с генераторами и yield
, но также не мог заставить их работать. Что-то вроде:
@app.route("/execute")
def execute():
def generate():
yield ''
doSomething()
yield file
return Response(generate())
, но приложение требует, чтобы я обновил sh страницу, чтобы получить второй полученный объект.
Что мне в основном нужно сделать, это вернуть пустой Response
объект изначально, запустите выполнение doSomething()
, а затем верните другой Response
объект. Как мне выполнить sh это?