pythonmysqldb:用于检查连接的钩子函数

2024-09-30 20:33:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,它使用mySQL全局调用数据库连接对象。有一个插入函数insertToTable(actionDate, action),它在表中插入一条记录。if __name__=="__main__":中脚本的主要部分作为一个无限的while循环运行数小时/天。在

问题是,mysql连接对象可能会长时间不使用,这会导致mysql服务器连接超时。我目前在函数中使用try&;except来捕捉异常。但是这会导致代码重复,因为我必须在每个函数中包含try&except块来处理此错误。在

我想知道python中是否有一种机制可以让insertToTable()与另一个函数挂钩,比如checkConnectivity()。当调用insertToTable()时,首先执行checkConnectivity(),然后继续执行insertToTable()。在


Tags: 对象函数脚本数据库if记录mysqlaction
1条回答
网友
1楼 · 发布于 2024-09-30 20:33:03

您可以创建一个调用checkConnectivity函数的装饰器。示例:

def checkConnectivity():
    print 'Checking connection'

def CheckConnectionDecorator(fn):
    def new(*args, **kwargs):
        checkConnectivity()
        return fn(*args, **kwargs)
    return new

@CheckConnectionDecorator
def insertToTable():
    print 'Insertion'

@CheckConnectionDecorator
def anotherQueryFunction():
    print 'Another query'

相关问题 更多 >