有没有办法在装饰器中包装函数调用

时间:2021-01-06 10:43:57

标签: python python-3.x

在我的 Flask 应用程序中,我与 MongoDB 交互。为了恢复能力,我遵循一种模式将插入/更新操作包装在这样的重试循环中 -

retry = 3
while (retry>0):
    try:
        response = db.collection_name.insert({'name' : 'somename'})
        if response: #or something relevant to the query.
          #do something
          break
        else:
          #do something else
          break
    except:
        retry-=1

这是我发现自己用于几乎所有更新/插入操作的模式。现在,我想知道是否有办法避免一次又一次地编写相同的循环。

在研究如何编写装饰器来解耦动作并将其应用于我们想要的任何函数时。为函数运行计时,我想知道是否可以对 db 调用(或特定的集合或指令)执行类似的操作,而无需将它们放入函数中。

0 个答案:

没有答案