首页 文章

事实上插入的规则 - Drools

提问于
浏览
0

我是Drools的新手,并从基础开始 . 这是一个设置;

  • 有一些规则文件

  • 不同文件中的规则属于不同的议程组

  • 所有规则都是基于相同的事实

  • 在我的单元测试中,我获得了一个特定的"Agenda Group",设置了焦点( session.setFocus

  • 我插入事实( Here is where I notice the rules within the other agenda group are getting evaluated even though the focus is not on them)

  • fireAllRules()

是否应该解除与重点关注的特定议程小组有关的规则,而不是所有小组的所有规则?

1 回答

  • 1

    许多基于规则的系统中的基本定律 - 特别是那些遵循Rete或类似算法的系统 - 只要工作内存发生变化,就会发生条件评估("t when","left hand side"):插入,更新或删除 . 相反,规则触发或后果执行("then","right hand side")发生在 fireAllRulesfireUntilHalt 被调用之后 .

    规则的制定 - 更确切地说:规则的激活 - 可以通过多种方式加以控制 . 在这里,它确实是一个集中的议程组,限制了引擎可以执行的内容 .

    记住这一点: evaluation 不等于 execution .

相关问题