使用Redis pub / sub作为Rails和Node.js中的消息队列进行异步

时间:2011-07-07 10:14:35

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

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

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

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

这是我第一次需要做这样的事情,而我却无法知道如何做。我想如果我将请求放入队列(也许是redis pub sub),我可以使用Node.js检索它,处理并再次返回。这会有用吗?

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

谢谢

1 个答案:

答案 0 :(得分:1)

要知道哪个用户发出了请求,请将用户ID作为参数传递。如果您没有用户ID,则执行此操作的其他选项是通过IP,但这将很快变得复杂。

但你描述的内容听起来会有效。

如果这是您的第一次,我可以建议您查看此截屏视频:http://railscasts.com/episodes/271-resque