【问题标题】:Server Request Timeout Error for Flask Application in Heroku using gunicornHeroku 中使用 gunicorn 的 Flask 应用程序的服务器请求超时错误
【发布时间】:2021-09-16 00:52:15
【问题描述】:

我已尝试增加 Procfile 中的超时时间,但在处理服务器上的某些数据时仍然面临请求超时错误。在将请求发送到服务器服务器超时 30 秒后。有什么办法可以增加这个请求超时时间?

我从用户那里获取类别和页码,然后从网站上抓取数据,当它实际上忙于抓取服务器时,30 秒后超时,但请求仍在后台处理。

我正在使用带有 gunicorn 的 Heroku,我的 Procfile 设置是:

web gunicorn main:app --timeout 60 --workers=3 --threads=3 --worker-connections=1000

【问题讨论】:

    标签: python flask heroku request timeout


    【解决方案1】:

    无法将 HTTP 超时时间增加到 30 秒以上。

    看起来您需要一种不同的方法,让用户不会等待响应被处理和传输。你可以考虑:

    1. 显示“正在进行中”的页面,每 30 秒重新加载一次(检查后台进程是否已完成)
    2. 在后端处理请求后通知用户(电子邮件、浏览器通知)

    【讨论】:

    • 如何使用后台进程,因为我使用过 redis 对接我在 redis 中遇到错误
    • 当请求到达时,创建一个 Python 线程来执行工作,然后更新 DB 或 Redis。您的网页应该访问 DB/Redis 以查看是否已经有后台线程的输出。或者您可以要求用户刷新页面(可能更容易开始)
    • 对于 Redis 错误,如果您能弄清楚发生了什么,最好创建一个新问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2019-12-15
    • 2015-09-08
    • 1970-01-01
    相关资源
    最近更新 更多