2011-01-14 47 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

这种宝石提供了一个简单的观察器实现,允许您订阅和监听用一个简单而有效的方式在你的应用程序事件。