有没有办法在规则完成之前在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
}
任何帮助将不胜感激。
答案 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);