2012-11-29 44 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! 

這樣,你將有機會獲得您的模型,可以與互動你的數據庫通過你的模型類。

相關問題