【发布时间】:2013-11-02 02:53:44
【问题描述】:
我了解 Thin 建立在提供异步 IO 的 EventMachine 之上。如果我使用 RoR 或 Sinatra 之类的机架框架并进行一些 DB 调用(不使用任何特殊库),这是否会阻塞主事件循环(假设我使用 Thin 作为 Web 服务器)?
谢谢
【问题讨论】:
标签: ruby eventmachine thin
我了解 Thin 建立在提供异步 IO 的 EventMachine 之上。如果我使用 RoR 或 Sinatra 之类的机架框架并进行一些 DB 调用(不使用任何特殊库),这是否会阻塞主事件循环(假设我使用 Thin 作为 Web 服务器)?
谢谢
【问题讨论】:
标签: ruby eventmachine thin
是的。
标准 DB 客户端建立在 Ruby 的 TCPSocket 之上,这将在等待响应时阻塞主线程。
您应该使用修补客户端,它将替换 TCP 连接到 EM::Connection。其中一些出现在 EventMachine 库本身中
【讨论】: