我有一个非实时的Esper配置,其中我提供了一个从文件中读取的流。我正在尝试创建一个表达式,该表达式计算整个流的统计信息,并在最后输出一个值。例如,Esper具有强制视图每X秒输出一次的语义,但是当您知道没有更多事件可供输入时,是否有语义要求视图或引擎“刷新”输出。
发布于 2010-01-27 09:00:33
事实证明,至少有一种方法是将output子句与变量触发器一起使用。
表达式将为:
select count(*) as totalCount from events output last when OutputSummary = trueOutputSummary变量将按如下方式初始化:
epConfiguration.addVariable("OutputSummary", Boolean.class, "false");准备好刷新时,将变量设置为true,如下所示:
epRuntime.setVariableValue("OutputSummary", true);
long currentTime = epService.getEPRuntime().getCurrentTime();
epRuntime.sendEvent(new CurrentTimeEvent(currentTime));有必要发送另一个时间事件来强制表达式求值。
发布于 2015-03-30 14:42:47
当输出需要每隔60秒时,则表达式为:
select emplyee_id from employees output snapshot every 60 sec当输出需要每10000个事件时,则表达式为:
select emplyee_id from employees output snapshot every 10000 eventshttps://stackoverflow.com/questions/2143557
复制相似问题