2017-04-10 96 views
0

我是Espers新手,尝试实施警报系统。当项目值超过阈值时,我需要抛出一个事件。 例如,对于一辆汽车,我想在属性坦克超过40值时获得一个事件,而当此值回到40以下时,我想获得一个事件。Esper:当值超过阈值时抛出事件

我已经尝试了很多Esper的功能,但没有任何效果。

我想要做这样的事情,但它不能很好地工作:

insert into AlertEvt select b from pattern[t=Car while (t.tank > 90) -> b=AlertEvt(type=t.tank, machineName=t.module)] 

希望有人能帮助我。

回答

0

这一个警报,当值超过40:

select * from Event(value > 40) 

当值后一度超过40低于40落在这一个警示:

select * from pattern[Event(value > 40) -> Event(value < 40)] 

既然你没有说明多久你想要提醒(一次,每次?),何时不提醒(超过40次抑制?),我没有添加任何重复或任何抑制。解决方案模式页面非常有帮助。我在下面有几个链接可以帮助你解决你没有说的要求。

http://espertech.com/esper/solution_patterns.php#semantic-window-0

http://espertech.com/esper/solution_patterns.php#semantic-window-1

http://espertech.com/esper/solution_patterns.php#semantic-window-2

+0

谢谢,这是有用的。您的请求会引发“结束警报”。我试图在警报开始时抛出一个事件,并在结束时抛出一个事件。但是,虽然价值是上限,但我不想抛出很多警报。也许与esper上下文。 – Arthur

+0

要获得第一个事件,请尝试“从事件#firstevent中上下文xyz select *”。否则上下文是要走的路。 – user650839

相关问题