首页 > 编程语言 > 详细

Python ORM Storm 源码修改

时间:2015-11-27 14:28:43      阅读:431      评论:0      收藏:0      [点我收藏+]

安装 storm : pip install storm

目标:修改 Storm 源代码以支持自动重连
文件:python安装目录/site-packages/storm/database.py

在411行添加函数(可以不在这一行,只要是给class Connection添加函数就行):

def _check_and_reconnect(self):
    if not isinstance(self._database,storm.databases.mysql.MySQL):
        return 0
    try:
        self._raw_connection.ping()
    except Exception,e:
        try:
            self._raw_connection = self._database.raw_connect()
        except Exception,e:
            return 0
    self._state = STATE_CONNECTED
    return 1

 

在函数 _ensure_connected(self)中调用上面的函数:

def _ensure_connected(self):
    """Ensure that we are connected to the database.

    If the connection is marked as dead, or if we can‘t reconnect,
    then raise DisconnectionError.
    """
    if self._blocked:
        raise ConnectionBlockedError("Access to connection is blocked")
    self._check_and_reconnect()  #添加这一行即可,该函数只有这一处改动
    if self._state == STATE_CONNECTED:
        return
    elif self._state == STATE_DISCONNECTED:
        raise DisconnectionError("Already disconnected")
    elif self._state == STATE_RECONNECT:
        try:
            self._raw_connection = self._database.raw_connect()
        except DatabaseError, exc:
            self._state = STATE_DISCONNECTED
            self._raw_connection = None
            raise DisconnectionError(str(exc))
        else:
            self._state = STATE_CONNECTED

 

Python ORM Storm 源码修改

原文:http://www.cnblogs.com/olivetree123/p/5000283.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!