Esper最后插入了Event

时间:2013-08-21 05:50:53

标签: java rule-engine esper

有没有办法在规则完成之前在esper核心中获取最后插入的事件?

Configuration cepConfig = new Configuration();
     cepConfig.getEngineDefaults().getMetricsReporting().
     setEnableMetricsReporting(true);
cepConfig.addEventType("Stream", Stream.class.getName());
EPServiceProvider cep = EPServiceProviderManager.getProvider("myCEPEngine", cepConfig);
EPRuntime cepRT = cep.getEPRuntime();
EPAdministrator cepAdm = cep.getEPAdministrator();
EPStatement cepStatement = cepAdm.createEPL("select * from Stream.win:length(100)") ;
cepStatement.addListener(new CEPListener());

现在插入事件我正在使用此示例代码

for (int i = 0; i < 500; i++) {
     GenerateRandomStream(cepRT);
     //Here I want get the last inserted event
}

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以使用“prev”功能。 “在规则完成之前”具体是什么意思?

答案 1 :(得分:0)

使用随需应变查询api对esper运行时引擎进行一次性查询:

String query = "select prev(0, evt) from Stream.win:length(10) as evt";
EPOnDemandQueryResult result = cepRT.executeQuery(query);