【发布时间】:2010-12-31 05:29:17
【问题描述】:
我正在编写一个 Rails Web 服务,它与分散在全国各地的各种硬件进行交互。
当调用 Web 服务时,Rails 应用程序会尝试联系适当的硬件,获取所需信息,并回复 Web 客户端。客户致电和回复之间的时间可能长达 10 秒,具体取决于多种因素。
我不想将 Web 服务调用一分为二(询问信息,立即回复等待回复,然后强制另一个 api 调用以获得实际结果)。
我基本上看到了两种选择。要么运行 JRuby 并使用多线程,要么运行几个常规的 Ruby 实例,并希望一次没有多少人尝试使用该服务。 JRuby 似乎是更好的解决方案,但它似乎仍然不是主流,并且在 Heroku 和 EngineYard 提供了开箱即用的支持。多实例解决方案似乎完全是杂牌。
1) 我对我的两个选择是否正确?有没有更好的我想念的? 2) JRuby 有简单的部署选项吗?
【问题讨论】:
-
为什么不使用你提到的两次调用方法?
-
我很确定 EngineYard 支持 JRuby。 engineyard.com/blog/2009/engine-yard-adds-jruby-support
标签: ruby-on-rails ruby jruby