获取函数执行时间的装饰器
def log_execution_time(func):
@wraps(func)
def wrapper(*args, **kwargs):
start = time.perf_counter()
res = func(*args, **kwargs)
end = time.perf_counter()
ik_global.Logger.info('{} took {} ms'.format(
func.__name__, (end - start) * 1000))
return res
return wrapper
使用
@classmethod
@log_execution_time
def one(cls, **kwargs):
try:
ms = session.query(cls).filter_by(**kwargs).all()
session.commit()
except Exception as e:
session.rollback()
ik_global.Logger.info("one err: {}".format(str(e)))
return "one err"
return [m.serialize for m in ms]