0
4

1 に答える 1

0

接続方法にタイムアウトを追加します。

db = MySQLdb.connect (host = HOST, user = USER, passwd = PASS, db = DB,
                      connect_timeout = TIMEOUT)

exceptブロックでこれを実行して、再接続を行います。

作業を楽にするために、接続コードを別の関数に配置して、再利用できるようにします。このようなもの(テストされていません):

def get_cursor()
    try:
    db = MySQLdb.connect (host = HOST, user = USER, passwd = PASS, db = DB,
                          connect_timeout = TIMEOUT)
    except MySQLdb.Error, e:
        print("Error %d: %s" %(e.args[0], e.args[1]))
        sys.exit(1);
    return db.cursor()

def mysql_handling(cursor, string):
    while True:
        try:
            cursor.execute(string)
            if 'SELECT' not in string:
                db.commit()    
            break
        except MySQLdb.MySQLError:
            cursor.close()
            mysql_error_tracking(string)
            cursor = get_cursor()

def main():
    mysql_handling(get_cursor(), string)
于 2013-03-02T13:15:57.970 に答える