运行Drools规则的最有效方法

运行Drools规则的最有效方法,drools,Drools,试着学习流口水。流口水最有效的方法是什么。现在我有一个KieContainer Bean,每当我需要执行规则时,我都会执行以下操作 KieSession kieSession = kieContainer.newKieSession(); kieSession.insert(record); kieSession.fireAllRules(); kieSession.dispose(); 这是正确的方法吗?我是否应该每次都创建和处理会话?我可以重复使用会话吗 编辑:如果重用会话是可以接受的,那

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

KieSession kieSession = kieContainer.newKieSession();
kieSession.insert(record);
kieSession.fireAllRules();
kieSession.dispose();
这是正确的方法吗?我是否应该每次都创建和处理会话?我可以重复使用会话吗

编辑:如果重用会话是可以接受的,那么这似乎更快

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

重用会话取决于您是否有常规或用户特定的场景。如果你使用重用,你需要非常小心,这样所有的东西都会被删除,并且不会留下以前特定于用户的东西(包括规则插入的事实等)

每次重新创建会话将更加安全,并且容易出错