gpt4 book ai didi

python - 扭曲的 adbapi cp_reconnect 不工作

转载 作者:可可西里 更新时间:2023-11-01 07:16:47 25 4
gpt4 key购买 nike

我有一个与 MySQL 数据库对话的 Cyclone Web 服务。当有一段时间没有事件时(我猜超过 8 小时),我收到以下错误,直到我重新启动 Web 服务:

_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')

我看过 this post regarding cp_reconnect ,我在创建连接池时已经实现了这一点:

pool = adbapi.ConnectionPool("MySQLdb", host=self.host, user=self.user,
passwd=self.password, db=self.database, cursorclass=MySQLdb.cursors.DictCursor,
cp_reconnect=True)

我原以为这会修复它,而且似乎有一段时间了,但现在我在服务器上一段时间没有事件后再次看到“MySQL 服务器已经消失”错误。

我已阅读 this MySQL documentation regarding wait_timeout ,我可以按照我想的方式修复它,但为什么 cp_reconnect 功能对我不起作用?我将 adbapi 文档解释为如果您指定 cp_reconnect 参数,adbadpi 将处理 MySQL 发送的错误并为您重新尝试查询。所以基本上你不必直接在代码中处理错误。我是不是误会了?

最佳答案

几年前,我一直在寻找解决方案。我在网上某处找到并确定的解决方案是子类化 ConnectionPool 并覆盖 _runInteraction,您可以在特定错误代码上强制重新连接。快速谷歌搜索将我带到这个网站:http://www.gelens.org/2009/09/13/twisted-connectionpool-revisited/包含代码。我再也不用考虑终止 MySQL 连接了。

关于python - 扭曲的 adbapi cp_reconnect 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12677246/

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