【问题标题】:Communication between Rails and Ruby EventMachine ProcessRails 和 Ruby EventMachine 进程之间的通信
【发布时间】:2012-03-15 10:23:54
【问题描述】:

我有一个 Rails 应用程序,它需要从运行 EventMachine 的本地运行进程请求数据。实现此请求/响应的最佳方式是什么?

【问题讨论】:

  • 您需要数据同步(用于 http 响应)还是异步(作为工作人员)?
  • @tass 我希望 Rails 向进程询问一些数据,并让进程立即响应数据,就像 Web 服务器和浏览器之间的交互一样。数据可能是 JSON。

标签: ruby-on-rails ruby ruby-on-rails-3 eventmachine unix-socket


【解决方案1】:

不确定,但我会尝试使用套接字。 EM - 监听和接收消息,返回数据,Rails - 连接到 EM 并发送消息和接收数据。

【讨论】:

    【解决方案2】:

    我不知道这是否是完美的答案,但我正在研究同样的问题,并会尝试使用https://github.com/kwi/BrB

    另外,请查看这篇博文:http://www.tricksonrails.com/2010/04/introducing-brb-extremely-fast-interface-for-doing-distributed-ruby/

    【讨论】:

      【解决方案3】:

      同时检查一个新的宝石:websocket-rails
      为 ruby​​ on rails 提供即插即用 websocket 支持。

      【讨论】:

        【解决方案4】:

        最简单的方法是让您的后端使用 HTTP。然后,您的 Rails 应用程序只需向后端服务器发出 HTTP 请求。以 JSON 格式返回数据并在 Rails 中根据需要使用。

        在 PostRank,我们创建了 Goliath,我们在 HAProxy 后面运行它以显示我们的 Rails 应用程序的数据。

        【讨论】:

          【解决方案5】:

          感谢您的回答。我最终使用了RabbitMQ

          【讨论】:

            【解决方案6】:

            看看IO.pipe,如果你在*nix系统下并且你正在为EM.run循环执行fork。

            【讨论】:

            • 此问题的所有其他答案都建议使用大炮杀死苍蝇。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-16
            • 1970-01-01
            • 1970-01-01
            • 2011-04-15
            • 1970-01-01
            • 2011-01-05
            相关资源
            最近更新 更多