4

私のシナリオは次のとおりです。

システムイベントを書き留めるためのアクティブなレコードモデルを持つRailsアプリがあります。これらのシステム イベントは、Rails アプリまたは別の Ruby アプリから発生する可能性があります。ruby アプリは現在、そのイベントを Redis キューに発行しています。

Rails アプリ内で Redis リスナーを開始してキューにサブスクライブする方法はありますか?

4

1 に答える 1

0

@sergio が述べたように、レール アプリケーションは redisクライアントの場所ではありません。Rails Web アプリケーションは、クライアントからの要求に応答するサーバー側アプリケーションです。そのため、必要なのは、redis サーバーのクライアントとして機能する別のプロセス (できればデーモン) です。

redis クライアントをデーモン化するには、daemonsgem を使用できます。私は通常、デーモンを次の場所に配置します<app-root>/lib/daemons/

次の行を最初に含めることで、完全な Rails 環境をデーモン プロセスにロードできます。

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

そうすれば、モデルにアクセスでき、モデル クラスを介して DB と対話できます。

于 2012-11-29T21:27:24.257 に答える