def __call__(self,method):
@wraps(method)
def wrapper(*args, **kwargs):
async_result = ThreadedResult()
def _method():
async_result.start()
try:
result=method(*args, **kwargs)
except Exception as e:
trace=inspect.trace()
trace=traces(trace,start=0, end=None)
if self.log: logger.error("%s\n %s" % (repr(e), '\n '.join(trace)))
async_result.fail(trace)
else:
async_result.succeed(result)
t=Thread(target = _method)
t.start()
async_result.set_thread(t)
return async_result
return wrapper
评论列表
文章目录