3

我正在尝试从 CherryPy 转移到我正在开发的 Web 服务上,而我正在考虑的一个替代方案是 Tornado。现在,我的大部分请求都在后端看起来像:

  • 获取 POST 数据

  • 看看我是否在缓存中(数据库访问)

  • 如果不向其他一些 Web 服务发出多个 HTTP 请求,这可能需要几秒钟,具体取决于请求的数量

我一直听说不应该阻塞龙卷风主循环;我想知道如果上面所有的代码都是在 a 的post()方法中执行的RequestHandler,这是否意味着我正在阻塞代码?如果是这样,在上述要求下使用龙卷风的适当方法是什么。

4

1 回答 1

1

Tornado 附带一个异步(实际上是两个iirc)http 客户端(AsyncHTTPClient)。如果您需要执行其他 http 请求,请使用该请求。

数据库查找也应该使用异步客户端来完成,以免阻塞龙卷风 ioloop/mainloop。我知道那里有几个 tornado 量身定制的数据库客户端(例如redismongodb)。mysql lib 包含在 tornado 发行版中。

于 2011-01-10T16:30:50.960 回答