-
StatelessKieSession && KieSession
Drools的session分为有状态与无状态两种,有状态的在插入fact之后可以通过句柄多次更新fact并且触发规则。一般都使用有状态的session,可以通过insert或者update方法去触发规则。无状态的函数直接调用execute方法传入fact去匹配规则,执行逻辑。
KieServices ks = KieServices.Factory.get();
KieContainer kieContainer = ks.getKieClasspathContainer();
KieSession ksession = kieContainer.newKieSession("ss");
Product product = new Product();
product.setType(Product.GOLD);
ksession.insert(product);
ksession.fireAllRules();
ksession.dispose();
-
agenda-group && auto-focus
分组的概念,可以将几个规则进行分组,如果分组了那么必须显示的指定调用某个组,不然就不会执行了,调用代码为
kSession.getAgenda().getAgendaGroup("abc&