首页 文章

以drools分开火议程组

提问于
浏览
3

我们正在使用Drools 6 .

我的所有规则都分为两类,预取规则和主要规则 .

我想以某种方式触发所有使用议程组'prefetch'定义的规则,然后一旦完成,然后触发议程组'mainRules' .

想知道,是否有可能做到这一点,并且在我们解除所有规则并且仍然分享两者之间的背景的情况下,从外部分别解雇议程小组?

我在某处找到了一个方法'setAgendaFilter',但我无法在无状态会话中找到它,不确定它是否已在Drools 6中删除 .

谁可以帮我这个事?

PS . :组'预取'中的内部规则我们有'插入'以便它再次触发规则,我不希望这导致在'mainRules'组中触发规则

2 回答

  • 0

    使用StatefulKnowledgeSession(5.x)或KieSession(6.x)kSession或者你可以

    kSession.getAgenda().getAgendaGroup( "prefetch" ).setFocus();
    kSession.fireAllRules();
    kSession.getAgenda().getAgendaGroup( "mainRules" ).setFocus();
    kSession.fireAllRules();
    

    放松,看着它们闪烁着光芒 .

  • 2

    请看drools documentation中的 ruleflow-group .

    Ruleflow是一种Drools功能,可让您控制规则的触发 . 由相同规则流组标识符汇编的规则仅在其组处于活动状态时触发 .

相关问题