相关疑难解决方法(0)

如何从SQLAlchemy控制MySQL超时?

使用SQLAlchemy从客户端运行MySQL数据库时,控制超时的正确方法是什么?该connect_timeoutURL参数似乎是不够的.

我对运行数据库的机器发生的事情更感兴趣,例如,意外地从网络中消失.我并不担心查询本身需要太长时间.

如果somehost 到达while循环之前不可用,则以下脚本执行您期望的操作(即,大约一秒后超时).但是,如果,某下降过程中while循环(例如,尝试唬弄了其网线循环开始后),然后超时似乎至少需要18秒.我缺少一些额外的设置或参数吗?

wait_timeout会话变量不起作用并不奇怪,因为我认为这是一个服务器端变量.但我把它扔在那里只是为了确保.

from sqlalchemy import *
from sqlalchemy.exc import *
import time
import sys

engine = create_engine("mysql://user:password@somehost/test?connect_timeout=1")
try:
    engine.execute("set session wait_timeout = 1;")
    while True:
        t = time.time()
        print t
        engine.execute("show tables;")
except DBAPIError:
    pass
finally:
    print time.time() - t, "seconds to time out"
Run Code Online (Sandbox Code Playgroud)

python mysql sqlalchemy

9
推荐指数
1
解决办法
5474
查看次数

标签 统计

mysql ×1

python ×1

sqlalchemy ×1