我正在學習燒瓶,並試圖在Heroku上創建小型網站。 在Heroku上部署時,我得到了超長任務的超時錯誤,並且可以通過超時增加進行傳遞。經過調查更多,我發現另一種解決方案是流水。這裏的文章關閉我的解決方案:https://librenepal.com/article/flask-and-heroku-timeout/ 但它不工作。錯誤30秒後 依然出現從文章:在heroku上的瓶子仍然流水30秒超時錯誤
from flask import Flask, Response
import requests
app = Flask(__name__)
def some_long_calculation(number):
'''
here will be some long calculation using this number
let's simulate that using sleep for now :)
'''
import time
time.sleep(5)
return number
@app.route('/')
def check():
def generate():
for i in range(10):
yield "<br/>" # notice that we are yielding something as soon as possible
yield str(some_long_calculation(i))
return Response(generate(), mimetype='text/html')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080, debug=True)
你有關於這個問題的任何想法?
也許這篇文章可能會有所幫助:http://stackoverflow.com/questions/18975851/how-to-make-flask-reponse-to-client-asynchronously – MrLeeh
謝謝MrLeeh,我會檢查它 –
但似乎解決方案是創建新任務並在後臺運行,而不是將數據流式傳輸到Web瀏覽器。 我正在尋找解決方案,以流數據,如更新進度,並可以通過Heroku的第二秒超時 –