2012-11-29 24 views
3

我的情况如下:如何创建一个Rails应用程序内Redis的听众

我有这对于写下来的系统事件的活动记录模型Rails应用程序。这些系统事件可以来自Rails应用程序或来自单独的Ruby应用程序。 Ruby应用程序当前将其事件发布到Redis队列中。

在Rails应用程序中有没有办法启动Redis侦听器并订阅队列?

+1

Rails是一个Web框架。请求 - 响应周期。没有长期的东西。您需要单独的守护进程来处理该队列并将数据写入数据库。您的导轨模型将像往常一样从数据库中获取数据。 –

回答

1

正如@sergio提到的,您的rails应用程序不是redis的地方客户端。一个rails web应用程序是一个服务器侧应用程序,它响应来自客户端的请求。这就是为什么,你需要的是一个单独的进程(最好是守护进程),它充当你的redis服务器的客户端。

要使您的redis客户端进行守护程序,您可以使用daemons gem。我通常将我的守护进程在<app-root>/lib/daemons/

您可以通过这些线在开始你的守护进程加载完整的Rails环境:

require File.dirname(__FILE__) + "/../config/application" 
Rails.application.require_environment! 

这样,你将有机会获得您的模型,可以与互动你的数据库通过你的模型类。

相关问题