【问题标题】:of tornado and blocking code龙卷风和阻塞代码
【发布时间】:2023-03-16 03:06:01
【问题描述】:

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

  • 获取 POST 数据

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

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

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

【问题讨论】:

    标签: python tornado


    【解决方案1】:

    Tornado 附带一个异步(实际上是twoiirc)http 客户端(AsyncHTTPClient)。如果您需要执行额外的 http 请求,请使用那个。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多