我有一个非实时的Esper配置,我提供了一个从文件中读取的流.我正在尝试创建一个表达式来计算整个流的统计量,并在最后输出一个值.例如,Esper具有强制视图每X秒输出的语义,但是当您知道没有更多事件要提供时,是否存在用于要求视图或引擎"刷新"输出的语义.
事实证明,至少有一种方法是使用带有变量触发器的output子句.
表达式为:
select count(*) as totalCount from events output last when OutputSummary = true
Run Code Online (Sandbox Code Playgroud)
OutputSummary变量将初始化为:
epConfiguration.addVariable("OutputSummary", Boolean.class, "false");
Run Code Online (Sandbox Code Playgroud)
准备好刷新时,将变量设置为true,如下所示:
epRuntime.setVariableValue("OutputSummary", true);
long currentTime = epService.getEPRuntime().getCurrentTime();
epRuntime.sendEvent(new CurrentTimeEvent(currentTime));
Run Code Online (Sandbox Code Playgroud)
有必要发送另一个时间事件来强制表达式进行评估.
| 归档时间: |
|
| 查看次数: |
1057 次 |
| 最近记录: |