2013-11-02 20 views
2

我知道Thin构建在EventMachine之上,它提供了异步IO。如果我使用RoR或Sinatra之类的机架框架并执行一些数据库调用(不使用任何特殊库),是否会阻止主事件循环(因为我使用Thin作为Web服务器)?做IO时做细块主线程吗?

感谢

回答

1

是它。

标准数据库客户端是在Ruby的TCPSocket上制作的,它会在等待响应时阻塞主线程。

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