是否存在基于特定条件触发用户定义警报的模式?

时间:2014-10-06 05:02:10

标签: ruby-on-rails ruby esper

我们需要允许我们的用户设置警报,并在使用特定条件创建或更新某些对象时收到通知(例如,类别在列表中,数量大于X ...)。

我想过两种方法:

  • 在创建和更新时使用观察者模式来评估针对此对象的所有规则,以查看它们是否被触发(这可能必须排队)
  • 运行后台任务,该任务将定期针对所有对象运行所有规则

前者似乎更“实时”,但如果我们每秒创建2个对象,那么我们将对这些规则进行相当多的评估。 在这方面,后者会更有效率。

两种方式看起来都很密集(我们期望约500条规则和10-20 000个对象),我想知道是否有更有效的方式......或者正确的方式。

对规则进行实时评估是一件好事,但不是强制性的,我们可以每6小时运行一次任务。

我已经看过Esper for Java和.net但这看起来不像Ruby的一个选项(+这看起来有点矫枉过正,如果可能的话我会避免添加依赖项。)

我们有一个运行ruby 2.0的Rails 4.1应用程序

0 个答案:

没有答案