运行Drools规则的最有效方法

时间:2019-01-07 21:22:55

标签: drools

试图学习流口水。运行流口水的最有效方法是什么。现在我有一个KieContainer Bean,并且每当我需要执行规则时,请执行以下操作。

KieSession kieSession = kieContainer.newKieSession();
kieSession.insert(record);
kieSession.fireAllRules();
kieSession.dispose();

这是正确的方法吗?我是否应该每次都创建和处置会话?我可以重用该会话吗?

编辑:如果可以重用会话,这似乎会更快

FactHandle fact = kieSession.insert(record);
kieSession.fireAllRules();
kieSession.delete(fact);

1 个答案:

答案 0 :(得分:0)

重用kieSession取决于您是否具有常规或特定于用户的方案。如果您要重复使用,则需要非常小心,以确保所有内容都被删除,并且不会遗留以前的用户特定内容(包括规则插入的事实等)。

每次重新创建kieSession会更安全且容易出错。