我正在寻找Rails中的Rendezvous设计模式示例或实现?基本上只有当一组输入事件都被触发时才会触发输出事件。一般来说,我希望输入事件在不同时间触发。这是一个人为的例子
输入事件: 1.燃油泵故障 2.银行2的门槛低 3. EV发起者不活动
每个事件都排队,当所有输入事件都已触发(满足条件)时,将触发输出事件。
A.Fuel Leak检测到
基于MVC模式,我理解我需要在控制器中实现集合点模式,但希望最有效地实现它,因为这些事件的体积,速度和可变性部分将会很高。
由于 萨蒂亚
答案 0 :(得分: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
很大程度上取决于你的用例:什么响应被解雇的事件?导致输出事件的实际事件是什么?不过,我认为这是一个相对较好的开始。