Python:MySQL:处理超时
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python:MySQL:处理超时,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1148字,纯文字阅读大概需要2分钟。
内容图文
![Python:MySQL:处理超时](/upload/InfoBanner/zyjiaocheng/912/9d52d684afa54dce8bf0f7fdb878608a.jpg)
我使用的是Python和mySQL,查询之间存在很长的延迟.结果,我得到一个’MySQL连接已经消失’错误,即wait_timeout被超过.
已经讨论过例如在
Gracefully handling “MySQL has gone away”
但这并没有具体回答我的问题.
所以我处理这个的方法 –
我已将所有sql执行语句包装在一个方法中 –
def __execute_sql(self,sql,cursor):
try:
cursor.execute(sql)
except MySQLdb.OperationalError, e:
if e[0] == 2006:
self.logger.do_logging('info','DB', "%s : Restarting db" %(e))
self.start_database()
我在代码中有几个地方调用此查询.问题是,我也有几个游标,所以方法调用看起来像 –
self.__execute_sql(sql,self.cursor_a)
self.__execute_sql(sql,self.cursor_b)
等等
在db启动后,我需要一种方法来优雅地重新执行查询.我可以在if语句中包装调用,然后重新执行它
def __execute_sql(self,sql,cursor):
try:
cursor.execute(sql)
return 1
except MySQLdb.OperationalError, e:
if e[0] == 2006:
self.logger.do_logging('info','DB', "%s : Restarting db" %(e))
self.start_database()
return 0
然后
if (self.__execute_sql(sql,self.cursor_a) == 0):
self.__execute_sql(sql,self.cursor_a)
但这很笨重.有一个更好的方法吗?
谢谢!!!
解决方法:
我尝试了Crasched的方法,这让我遇到了一个新的OperationalError:
OperationalError
内容总结
以上是互联网集市为您收集整理的Python:MySQL:处理超时全部内容,希望文章能够帮你解决Python:MySQL:处理超时所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。