打开tornado的database.py模块找到reconnect函数
添加dbutils数据池支持后代码如下:
def reconnect(self):
"""Closes the existing database connection and re-opens it."""
self.close()
try:
pool = PooledDB(creator=MySQLdb, setsession=['SET AUTOCOMMIT = 1'], **self._db_args)
self._db = pool.connection()
except:
self._db = MySQLdb.connect(**self._db_args)
self._db.autocommit(True)
setsession=['SET AUTOCOMMIT = 1'] 这个记得一定加上,因为DBUtils没有autocommit()这个方法。就是如果mysql配置的autocommit=0的话,每次对数据库的修改是不会实时反馈给mysql数据库的。而源代码中的self._db.autocommit(True)这一行就是为了在保证在执行完一条SQL后,修改内容马上反馈给mysql。
转载请注明: 给tornado添加dbutils支持 | 编程笔记