luxiaoxun / eagle

Real time data processing system based on flink and CEP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

execute方法取的object不是已识别的事件?

victortony opened this issue · comments

for (Object obj : kSession.getObjects()) {
result.add((LogEntry) obj);
}
上面代码取得数据不是已识别的事件吧?
@OverRide
public List execute(LogEntry entry) {
List result = new LinkedList<>();
KieSession kSession = kieBase.newKieSession();
try {
if (!isEmptyKie) {
kSession.setGlobal("LOG", logger);
}
kSession.insert(entry);
kSession.fireAllRules();
for (Object obj : kSession.getObjects()) {
result.add((LogEntry) obj);
}
} catch (Exception ex) {
logger.warn("Process log error, ex:{}", ex);
} finally {
kSession.dispose();
}
return result;
}

是已经识别的:drools输出的entry
如果drool中直接return,而没有任何entry输出的,就没有

是已经识别的:drools输出的entry
如果drool中直接return,而没有任何entry输出的,就没有

这个接口返回的是所有在session内存中的事件,但是,在内存中的事件是所有输入的事件,不是已经被识别的。被识别的事件应该通过AgendaEventListener.afterMatchFired获取。

不是很懂drools,也不明白“被识别的”是如何定义的

不是很懂drools,也不明白“被识别的”是如何定义的

使用drools的目的就是把命中规则的fact找出来吗

不是很懂drools,也不明白“被识别的”是如何定义的

使用drools的目的就是把命中规则的fact找出来吗

其实这个项目,最主要的不是“识别”,反而是对数据的标准化处理,当然也可以从数据中提取出指标(fact)
看下源码resource中我提供的样本就知道了