gpt4 book ai didi

python - Heroku 上的 Flask Streaming 仍然出现 30 秒超时错误

转载 作者:行者123 更新时间:2023-12-03 17:00:31 27 4
gpt4 key购买 nike

我正在研究 Flask 并尝试在 Heroku 上创建小型网站。在 Heroku 上部署时,我遇到了长任务超时错误,并且可以通过超时增加来解决。经过更多调查,我发现另一个解决方案是流媒体。这是我的解决方案的结尾文章:https://librenepal.com/article/flask-and-heroku-timeout/但这是行不通的。 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)

你对这个问题有什么想法吗?

最佳答案

您可以通过使用流式响应来避免 heroku 的 30 秒限制,我刚刚确认它可以正常工作。

我在 heroku 中使用带 gunicorn 的 flask ,除了链接的示例代码之外,我需要做的事情是更改 gunicorn 超时设置:web: gunicorn "app.app:create_app()"--timeout我的情况是600。默认超时为 30 秒,这恰好与 heroku 的超时设置相同。

关于python - Heroku 上的 Flask Streaming 仍然出现 30 秒超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41311589/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com