2011-01-14 36 views
5

我有一個適用於事件/偵聽器模型的應用程序。幾種不同的數據被髮布(事件),然後許多不同的事情可能需要或可能不需要對數據(聽衆)進行操作。聽衆沒有特定的順序需要發生,每個聽衆都會決定是否需要採取行動。事件/觀察者驅動的Ruby on Rails

Rails應用程序有哪些工具可以完成此任務?我希望沒有做到這一點我自己

編輯(雖然,我不能這不是什麼大不了的事。):Observer模式可能是一個更好的選擇。這

+1

這些監聽器是單獨的進程嗎?還是他們在數據發佈期間可以調用的簡單代碼塊? – Nemo157 2011-01-14 21:52:36

+0

80%的時間可能都是簡單的代碼塊。單獨的過程將是罕見的情況,但仍可能發生。 – Drew 2011-01-14 21:55:39

回答

2

您可能需要使用的ActiveSupport :: Notifications.instrument。

它是解耦事件發送到事件響應的通用橋樑。它適合於在單個Web請求期間執行所有監聽器,與EventMachine不同,它適應於大量併發事件的發生。

0

我創建了一個紅寶石的寶石正是應對這種使用情況:event_dispatcher

這種寶石提供了一個簡單的觀察器實現,允許您訂閱和監聽用一個簡單而有效的方式在你的應用程序事件。