2

我知道 Thin 建立在提供异步 IO 的 EventMachine 之上。如果我使用像 RoR 或 Sinatra 这样的机架框架并进行一些 DB 调用(不使用任何特殊库),这是否会阻止主事件循环(假设我使用 Thin 作为 Web 服务器)?

谢谢

4

1 回答 1

1

是的,它确实。

标准 DB 客户端建立在 Ruby 的 TCPSocket 之上,它将在等待响应时阻塞主线程。

您应该使用修补客户端,它将替换 TCP 连接到 EM::Connection。其中一些出现在 EventMachine 库本身中

于 2013-11-09T00:18:13.797 回答