我可以在drools专家中缓存kiesession吗?

时间:2014-01-28 20:35:25

标签: drools jboss-rules

我有一大堆规则,当我执行

KieSession ksession = kc.newKieSession(sessionName);

需要很长时间。我想重用kiesession。怎么可能这样做? 我的输入记录一次只能一个,而不是批量记录。

可用的文档非常少。

1 个答案:

答案 0 :(得分:1)

以下是示例代码 我认为这可能对其他人有用。 我发现当我必须处理大批量时 那么最好的方法是尽可能一次处理一堆记录。 然后缓存kiesession。(不要调用dispose。!!) 完成设置后,只需删除事实句柄。

List<FactHandle> fhs = new ArrayList<FactHandle>();//store the fact handles
//for removing later
.....in a loop add one or multiple records
....
fhs.add(ksession.insert(prcRec));

..............................

for (FactHandle factHandle : fhs) {
            ksession.delete(factHandle);
        }//Delete the fact handles so that next batch can be handled