我最近一直在使用 Esper,我在文档中遗漏了一个功能,但它可能存在。
我想存储一些事件,直到 15 秒内没有人弹出,当它发生时将它们全部释放。
一个查询正是这样做的,它是:
select rstream * from MyEvent.win:time_accum(15 sec)
我可以在 MyEvent 上添加一个条件,例如
select rstream * from MyEvent where status = 'ALARM_END'.win:time_accum(15 sec)
这非常有效。
现在我想在 eventType 属性上添加一个条件:
如果使用 eventType xxxx 触发了一个新事件,但窗口中已经有一个带有 eventType xxxx 的事件,则不要将此新的弹出事件添加到窗口中(因此不要在 0 到 15 秒之间停止秒表)。
有没有办法做到这一点 ?
非常感谢 !
编辑 :
更深入地研究我的需求和 ESPER 文档,我认为我的需求更满意
select * from MyEvent.win:time_length_batch(15 sec, 2)
我不认为我需要 rstream,因为我只想累积 1 或 2 个元素并在一个数组中一次性获取它们(新事件很好)。
但是,是否可以在进入窗口的第一个(也是唯一一个) MyEvent 上添加条件?它是状态 = 'ALARM_END'。