在 Python 中调用 MySql 的超时



我以这种方式连接到MySql:

  import MySQLdb
  cnn = MySQLdb.connect(user="login", passwd="passwd", db="some db") # subject to hang
  cur = cnn.cursor()
  cur.execute("some sql") # subject to hang
  cnn.commit() # maybe subject to hang
  cur.close()

理论上,在我的服务器上,MySql 可能会崩溃或其他原因,我想确保这些方法不会花费无限的时间来执行。我希望能够指定超时或"重置"或取消其执行。

有什么办法吗?

对于连接,MySQLdb.connect()有一个connect_timeout关键字参数,可用于设置连接超时。如果你想超越这一点,并实际上在你调用的方法上设置一个超时,以使用该连接做事,AFAIK MySQLdb 没有任何便利。但是,您可以创建一个 Python 装饰器来设置执行超时,如下所述:超时函数(如果完成时间太长(

通常你不会经常看到它,但你的上下文可能需要它。

相关内容

  • 没有找到相关文章

最新更新