每次值增加多个

时间:2015-09-25 09:05:57

标签: esper epl

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

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

但是,如果增加的是> = 200,> = 300等等,如何实现下一个事件?

到目前为止,使用上下文和窗口进行的各种测试都没有成功,所以我感谢任何帮助!谢谢!

1 个答案:

答案 0 :(得分: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)];

您可以使用相同模式中的“insert into”生成StartEvent(可能希望删除“every”)或让侦听器在StartEvent中发送或声明另一个模式,该模式仅触发一次以创建StartEvent。