2

我正在寻找类似 Rendezvous 的设计模式示例或 Rails 中的实现?基本上只在一组输入事件都被触发时才触发输出事件。一般来说,我希望输入事件在不同的时间触发。这是一个人为的例子

输入事件: 1. 燃油泵故障 2. Bank 2 中的阈值低 3. EV 启动器无效

每个事件都会排队,当所有输入事件都已触发(满足条件)时,会触发一个输出事件。

A. 检测到燃油泄漏

基于 MVC 模式,我知道我需要在控制器中实现集合模式,但希望最有效地实现它,因为这些事件的数量、速度和可变性部分将会很高。

谢谢萨蒂亚

4

1 回答 1

1

我特别不熟悉会合模式,但我想我会在模型级别通过回调来处理这个问题。像这样的东西:

class Pump < ActiveRecord::Base
  before_save :check_fuel_leak

  private

  def check_fuel_leak
    Pump.fuel_leak_detected! if self.failure? && self.bank_2_threshold <= 20 && self.ev_initiator_inactive?
  end
end

但是,很大程度上取决于您的用例:什么响应触发的事件?导致输出事件的实际事件是什么?不过,我认为这是一个相对不错的起点。

于 2012-11-14T17:11:06.447 回答