0

我正在寻找一个 EPL 语句,它在每次某个值增加指定数量时触发一个事件,中间有任意数量的事件,例如:考虑一个持续提供新价格的流。我想收到通知,例如,如果价格大于第一个价格 + 100。像

select * from pattern[a=StockTick -> every b=StockTick(b.price>=a.price+100)];

但是如何意识到我得到了下一个事件,如果增加> = 200,> = 300 等等?

到目前为止,上下文和窗口的各种测试尚未成功,因此我感谢任何帮助!谢谢!

4

1 回答 1

0

上下文将是正确的方法。您可以从定义这样的开始事件开始:

create schema StartEvent(threshold int);

然后有使用 start 事件的上下文:

create context ThresholdContext inititiated by StartEvent as se
     terminated after 5 years

context ThresholdContext select * from pattern[a=StockTick -> every b=StockTick(b.price>=context.se.threshold)];

您可以使用来自相同模式的“插入”生成 StartEvent(可能想要删除“每个”),或者让侦听器发送 StartEvent 或声明另一个仅触发一次以创建 StartEvent 的模式。

于 2015-09-28T11:47:37.453 回答