【问题标题】:Using Redis pub/sub as a message queue in Rails and Node.js for Async在 Rails 和 Node.js 中使用 Redis pub/sub 作为消息队列进行异步
【发布时间】:2011-07-07 18:53:33
【问题描述】:

我有一个向 Node.js 应用发送请求的 Rails 应用。 node.js 应用程序处理请求并返回到 Rails 应用程序。

这一切都是在 Rails 应用程序中同步完成的(应用程序阻塞,直到 Node.js 返回)。但是,我打算做的是非阻塞。

我希望 Rails 应用程序向 Node.js 应用程序发送请求,并且仅当 Node.js 应用程序返回时,Rails 应用程序才通过 UI 向用户显示信息(不会阻止请求)。

这是我第一次需要做这样的事情,但我不知道该怎么做。我在想,如果我将请求放入队列(可能是 redis pub sub),我可以使用 Node.js 检索它,处理并再次返回。这行得通吗?

另外,我怎么知道是哪个用户提出了请求(我必须将node.js应用处理的信息返回给他)?

谢谢

【问题讨论】:

    标签: ruby-on-rails-3 node.js redis


    【解决方案1】:

    要知道是哪个用户发出了请求,请将用户 ID 作为参数传入。如果您没有用户 ID,则另一种选择是通过 IP,但这会很快变得复杂。

    但你所描述的听起来会奏效。

    如果这是你第一次,我建议你看看这个截屏视频:http://railscasts.com/episodes/271-resque

    【讨论】:

    • IP 不安全,因为很多用户都在 NAT 后面 => en.wikipedia.org/wiki/Network_address_translation。 1 IP 映射到很多用户。
    • 这也是我的担心。但我想不出任何其他解决方案。
    • 代替 IP 为客户端生成一个 UUID,作为相关标识符。
    猜你喜欢
    • 2013-10-17
    • 2017-07-02
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多