试图学习流口水。运行流口水的最有效方法是什么。现在我有一个KieContainer Bean,并且每当我需要执行规则时,请执行以下操作。
KieSession kieSession = kieContainer.newKieSession();
kieSession.insert(record);
kieSession.fireAllRules();
kieSession.dispose();
这是正确的方法吗?我是否应该每次都创建和处置会话?我可以重用该会话吗?
编辑:如果可以重用会话,这似乎会更快
FactHandle fact = kieSession.insert(record);
kieSession.fireAllRules();
kieSession.delete(fact);
答案 0 :(得分:0)
重用kieSession取决于您是否具有常规或特定于用户的方案。如果您要重复使用,则需要非常小心,以确保所有内容都被删除,并且不会遗留以前的用户特定内容(包括规则插入的事实等)。
每次重新创建kieSession会更安全且容易出错。