class AsyncHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous def get(self): tasks.sleep.apply_async(args=[5], callback=self.on_result) def on_result(self, response): self.write(str(response.result)) self.finish()
引发错误:
raise TypeError(repr(o) + " is not JSON serializable") TypeError: <bound method AsyncHandler.on_result of <__main__.AsyncHandler object at 0x10e7a19d0>> is not JSON serializable
代理和后端都使用redis,我只是从https://github.com/mher/tornado- celery复制而来
当我使用amqp代理和redis后端时,它可以很好地工作,但在使用redis代理时却不能。这是因为tornado异步不支持Redis代理吗?
医生说:
注意:当前回调仅适用于AMQP和Redis后端。要使用Redis后端,必须安装tornado-redis。
因此,tornadoCelery不支持将redis作为代理…当我使用Rabbitmq作为代理+ redis作为后端时,它可以工作。