我正在寻找一个EPL语句,每当某个值增加一个指定的数量时,就会触发一个事件,中间有任意数量的事件,例如: 考虑一个流,不断提供新的价格。 我想收到通知,例如如果价格大于第一个价格+ 100,那就像
select * from pattern[a=StockTick -> every b=StockTick(b.price>=a.price+100)];
但是,如果增加的是> = 200,> = 300等等,如何实现下一个事件?
到目前为止,使用上下文和窗口进行的各种测试都没有成功,所以我感谢任何帮助!谢谢!
答案 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。