我正在为一个非常简单的游戏,我主持的Heroku应用程序,它与Heroku-Postgres“业余爱好-开发”级数据库交互。在本地托管时,应用程序可以与数据库进行完美的交互(。但是,当我将它部署到Heroku上时,它通常在尝试与数据库交互后不久就会崩溃。不需要这种交互的页面可以正常工作。具体来说,我在Heroku的日志中收到了以下两个错误:
2021-05-19T19:23:20.943811+00:00 app[web.1]:cur = db.cursor()
2021-05-19T19:23:20.943812+00:00 app[web.1]: psycopg2.InterfaceError: connection already closed还有..。
2021-05-19T19:20:35.682211+00:00 app[web.1]: cur.execute("select * from mock_table;")
2021-05-19T19:20:35.682211+00:00 app[web.1]: psycopg2.OperationalError: SSL error: decryption failed or bad record mac我对这一原因有一些基于研究的理论,但我不确定:
有谁知道我错过了什么吗?我可以提供更多的信息,如果需要,但我不想放太多。
发布于 2021-05-20 14:23:26
根据这篇文章的说法,我收到错误的一个可能原因是一个超时的数据库连接。因此,我所要做的就是将我的数据库调用方法放在一个try(除了块)中,并在发生错误时重新建立连接。举个例子
cur.execute("select * from mock_table;")可以用..。
try:
cur.execute("select * from mock_table;")
except:
#remake connection here
db.connect(host=host, database=database, user=user, password=password)
cur.execute("select * from mock_table;")这不是最优雅的解决方案,它可能有一些缺陷,但它已经成功地解决了问题到目前为止,所以我想我会分享它。
https://stackoverflow.com/questions/67610267
复制相似问题