我们正在使用Drools 6。
我所有的规则都分为两类:预取规则和主要规则。
我想以某种方式首先触发由议程组“prefetch”定义的所有规则,然后在完成后再触发议程组“mainRules”。
想知道,是否有可能做到这一点,并在外部激发所有规则并且仍然共享两者之间的上下文的情况下,从外部激发议程小组?
我在某处看到了方法“setAgendaFilter”,但在无状态会话中找不到该方法,不确定在Drools 6中是否已将其删除。
谁可以帮我这个事?
PS .:在组'prefetch'中的规则内部,我们有'insert',以便它导致再次触发规则,我不希望这导致在组'mainRules'中触发规则
最佳答案
使用StatefulKnowledgeSession(5.x)或KieSession(6.x)kSession或
kSession.getAgenda().getAgendaGroup( "prefetch" ).setFocus();
kSession.fireAllRules();
kSession.getAgenda().getAgendaGroup( "mainRules" ).setFocus();
kSession.fireAllRules();
放松,看着他们眨眼。
关于java - 流口水分别解散议程小组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21975213/