我正在尝试使用埃斯珀。
我的问题是关于事件之间的多态性。
示例(伪代码):
我使用两个类 GPSEvent 和 PositionEvent 作为事件类型。它们可能看起来像:
class GPSEvent{
double longitude
double latitude
}
和
class PositionEvent extends GPSEvent{
Date timeOfOccurence
}
如果我使用规则:
select * from GPSEvent.win:length_batch(5)
并且以下事件将被发送到引擎: GPSEvent g1, GPSEvent g2, GPSEvent g3, GPSEvent g4, PositionEvent p1
该规则将触发。
我现在的问题是如果发送子类型事件如何防止触发
或者
仅当事件类型是没有任何子类型的超类型时如何触发?
是否有任何最佳实践而不增加规则的复杂性或在 eventtype 类中使用“开销”?
附加信息:
在检测到 5 个 GPSEvents 后,我想将 PositionEvent 路由到订户之外的引擎