4

我的情况如下:

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

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

4

1 回答 1

0

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

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

您可以在您的守护进程中加载​​完整的 Rails 环境,方法是在开头包含以下几行:

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

这样您就可以访问您的模型,并可以通过您的模型类与您的数据库进行交互。

于 2012-11-29T21:27:24.257 回答