I init mariadb connection while webapp initialization like this:
con = MySQLdb.connect('localhost', 'user', 'pass', 'db')
Now I've found it doesn't work since there is a timeout to this connection. What is the best practice to set/keep connection to db? Increase timeout, create connection in each request or something more tuned?
答案 0 :(得分:0)
建议您构建一个返回数据库连接的单例对象(您的con
)。第一次调用它时,它执行MySQLDB.connect()
。然后它保留连接的静态副本,以便在后续调用时返回给调用者。
为了从断开连接中恢复...首先,请注意超时不是丢失连接的唯一原因;网络故障可能导致它。所以忘记超时,只需计划在需要时重新连接。
一种方法是ping
查看它是否仍然打开,如果不是,则重新连接。
另一种方法是自动连接"打开。但是这会对交易,@变量和其他可能会让你感到厌恶的事情产生负面影响。