def redis_timer(func):
def wrap(*args, **kwargs):
start_time = time()
result = func(*args, **kwargs)
end_time = time()
duration = end_time - start_time
frame = sys._getframe(1)
while frame:
f_locals = frame.f_locals
self = f_locals.get('self')
if self and isinstance(self, RequestHandler):
if hasattr(self, '_db_time'):
self._db_time += duration
self._db_count += 1
else:
self._db_time = duration
self._db_count = 1
break
frame = frame.f_back
return result
return wrap
评论列表
文章目录