如何解决即使 SQLALCHEMY_POOL_RECYCLE = 600,在响应时间为 5 分钟后,在 PythonAnywhere 中出现错误 504-loadbalancer网关超时
所以我调用 SPOTIPY API 将用户歌曲、专辑、艺术家和 user_info 添加到数据库。插入的记录总数约为 4,000。数据库将更新,但是在 5 分钟(response_time = 300 秒)后,HTML 页面将引发负载平衡错误。数据库在此错误后继续更新,但我的网页卡在错误屏幕上。
在访问日志中,当抛出错误时,我得到以下信息:
24.154.122.253 - - [23/Apr/2021:19:21:15 +0000] "POST /uploadFile HTTP/1.1" 499 0 "https://spotify365.pythonanywhere.com/upload" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/90.0.4430.85 Safari/537.36" "24.154.122.253" response-time=300.003
虽然在抛出错误时数据库可能尚未完成,但它最终会在几分钟后完成,这让我相信如果我可以增加 Flask Apps 的响应时间,那么我的程序应该可以工作。
>为了增加flask_app的响应时间,我尝试了:
app.config["SQLALCHEMY_POOL_RECYCLE"] = 600
但这并没有帮助,这让我尝试修改 Spotify 客户端的超时和重试限制:
spotify = spotipy.Spotify(client_credentials_manager=client_credentials_manager,requests_timeout=600,retries = 2)
这应该将 Spotipy API 请求的超时设置为 600 秒,并且请求最多可重试 2 次。但是我不相信这是问题,因为数据库确实最终完全创建
解决方法
如果 PythonAnywhere 上的请求在 5 分钟后仍未完成,PythonAnywhere 会假定 Web 应用程序以某种方式损坏并重新启动它。
SQLALCHEMY_POOL_RECYCLE
与请求超时无关。它是关于与数据库的连接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。