@tornado.web.asynchronous
@tornado.gen.coroutine
@auth_token
@log_record
def post(self):
"""
bussiness_name
description
:return:
"""
resultCode = self.request.headers.get('resultCode', -1)
resultData = self.request.headers.get('resultData', {})
user_id = resultData['user_id']
token = None
data = {}
body = json.loads(self.request.body)
data['business_name'] = body['name']
data['system_user_id'] = body['user_id']
data['description'] = body['description']
remote_call_result = get_business_result.apply_async(args=["POST", user_id, data])
# response = remote_call_result.wait()
# self.on_post_result(response)
response = yield tornado.gen.Task(remote_call_result.wait())
self.on_post_result(response)
def on_post_result(self, response):
di_result = json.dumps(response)
logger.info("verify, result:%s \n" % di_result)
self.write(json.dumps(di_result))
self.finish()
代码如上,使用 yield gen.Task 无法获取获得的 response,celery 任务是一个 rpc call, 有什么方法可以异步来获取结果?