通过对传入事件进行关联,我们可以根据指定的时间范围对过去的数据进行一些计算。 正如这里提到的。
within
我正在做这样的事情,通过使用关键字接收基于某个指定时间范围的事件。
@info(name='dg-start-check-query')
from every (e1=InputStream) -> e2=InputStream[e1.meter_id=='s1' and e2.meter_id=='s1' and convert(e2.current_avg, 'double')-convert(e1.current_avg, 'double')==convert(e2.current_avg, 'double') and convert(e1.current_avg, 'double')+convert(e2.current_avg, 'double')!=0 and convert(e1.current_avg, 'double')==0]
within 1 min
select time:dateFormat(e2.device_time, 'HH:mm:ss.SSS yyyy-MM-dd') as date_time
insert into OutputStreamStarted;
如何让此代码仅接收过去的 2 或 3 个事件并对其进行计算,就像使用收集事件一样window
?此代码将接收给定时间范围内的所有事件,并在多个事件满足其条件时多次执行。