【问题标题】:Esper: Throw event when a value exceeds a thresholdEsper:当值超过阈值时抛出事件
【发布时间】:2018-07-24 00:16:36
【问题描述】:

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

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

我想做类似的事情,但效果不好:

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

希望有人可以帮助我。

【问题讨论】:

    标签: java complex-event-processing esper


    【解决方案1】:

    这个值超过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

    【讨论】:

    • 谢谢,很有用。您的请求会引发“结束警报”。我试图在警报开始时抛出一个事件,在它结束时抛出一个事件。但是,虽然价值是上限,但我不想发出很多警报。也许与 esper 上下文有关。
    • 要获得第一个事件,只需尝试“context xyz select * from Event#firstevent”。否则上下文是要走的路。
    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多