【发布时间】:2012-06-17 05:05:20
【问题描述】:
在 EventMachine 中创建应用程序时,我使用异步库,因此我不会阻塞 EventMachine。例如使用 em-postgres 而不是 pg。使用 Thin 和 Rails 时是否需要使用异步库?如果是这样,那么活动记录如何工作?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 eventmachine thin
在 EventMachine 中创建应用程序时,我使用异步库,因此我不会阻塞 EventMachine。例如使用 em-postgres 而不是 pg。使用 Thin 和 Rails 时是否需要使用异步库?如果是这样,那么活动记录如何工作?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 eventmachine thin
您需要 Eventmachine 兼容库来处理任何阻塞。 Rails 默认不是异步的,而是it has been demonstrated that it can be modified into being so。我会小心走这条路,因为它仍然是非常规的,并且可能无法在您的生产基础架构上执行您期望的方式(例如,Heroku Bamboo 堆栈始终是“每个请求的测功机”,抵消了这种异步模型的好处)。
您需要从整体上查看您的堆栈,并询问您是否真的需要这个。结合延迟作业的传统线程设置可能被证明是一种更简单且同样有效的解决方案。
【讨论】: