4

我正在sockjs-tornado上构建服务器,想知道如何利用 tornado 的异步 HTTP 客户端或其他用于 tornado 的异步工具,例如 asyncmongo、tornado-redis 等。显然不可能使用tornado.web.asynchronous&tornado.gen.engine装饰器关于随机方法。因此,如果我需要从 SockJSConnection's 中进行异步 Mongo/HTTP/Redis 调用on_message(),我该怎么做?

4

1 回答 1

8

您所要做的就是创建一个由 tornado.gen 装饰器装饰的方法(或函数)

创建小要点来说明如何做到这一点:https ://gist.github.com/3708549

如果您将运行示例并检查服务器控制台,您将看到以下输出:

1 - 提出请求

2 - 从 on_message 返回

... 稍微延迟 ...

3 - 向客户端发送数据

因此,它不会阻塞 ioloop 并在后台进行 HTTP 调用。

于 2012-09-12T17:53:19.357 回答