当前位置: 首页 > 知识库问答 >
问题:

根据事实插入触发的规则-Drools

常明亮
2023-03-14

我对口水很陌生,从基础开始。这是一个设置;

>

  • 有一些规则文件
  • 不同文件中的规则属于不同的议程组
  • 所有规则都基于同一事实
  • 在我的单元测试中,我获得了一个特定的“议程组”,设置焦点(session.setFocus)
  • 我插入事实(这里是我注意到其他议程组中的规则正在得到评估的地方,尽管重点不在这些规则上)

    我的代码

    是否应该取消与关注的特定议程组相关的规则,而不是所有组的所有规则?


  • 共有1个答案

    松钟展
    2023-03-14

    在许多基于规则的系统中,尤其是那些遵循Rete或类似算法的系统中,当工作内存发生变化时,就会对条件(“t时”、“左侧”)进行评估:插入、更新或删除。相比之下,规则触发或后果执行(“然后”、“右侧”)发生在调用fire All规则fire UntilHalt之后。

    规则的触发——更准确地说:规则的激活——可以通过多种方式控制。在这里,确实是专注的议程组限制了引擎可以执行的内容。

    请记住:评估不等于执行。

     类似资料:
    • 我有一个多用途的传感器,每个传感器发送计步器数据。我有一个基于macAddress的规则文件,触发规则: My User只有一个字段,Steps事件有以下字段: 现在,当我为每个macAddress插入一个事件时,如果在过去一小时内使用该macAddress的用户的步骤数少于50,则规则将触发。因此,如果满足此条件,则该规则将为每个macAddress触发。但我希望规则只能为插入的步骤事件的mac

    • 我对drools和KIE服务器是新手。我遇到了一个问题,即如何通过触发规则RHS(then action)在工作记忆中插入新的事实,然后通过这些动态插入的事实激活其他规则。 我所期望的是,当BaseFeature从外部插入工作内存并激活RuleOne时,在RuleOne内部“然后”它将插入新的事实RuleResult,并希望激活RuleTwo,但它没有激活RuleTwo,只是RuleOne被激活了

    • null 我在上面试图指出的是,只有在执行第一个规则时,第二个规则才会执行。但是,正如我所理解的,规则的“如果”部分是在“然后”部分之前执行的,因此,第二条规则失败了。

    • 我刚开始流口水,遇到了一个问题。 我简化了规则以显示问题: 基本上,我想计算特定路段上发生的事件(路段是道路的一部分)。当同一链接上发生3个事件时,我希望触发规则。 上面的规则几乎起作用了,但是当它发射时,它发射了3次,每个事件发射一次。我只希望它发射一次。 我错过了什么? 非常感谢。

    • 问题内容: 所以我有两个这样的桌子… 我正在尝试创建一个触发器,该触发器将: 更新时被更新。 为了进一步使事情复杂化, 如果在when 更新中不存在,我想将其插入并设置为1。 我一直在寻找类似的问题: 1. 在使用自动增量字段插入触发器之前/之后,以及 2. 使用触发器来更新另一个数据库中的表以 尝试将2.合并在一起。这是我到目前为止的内容: 任何建议和指示,我们将不胜感激。或者可能是我忽略的另一

    • 我是个流口水的新手。我创建了以下对象: 和a*。包含规则的drl文件: 在Postman中,我试图用以下主体调用规则: 我得到了以下答案: 问题是,我的值为空,而不是我期望作为响应的对象。server.log是空的,我看不出有什么问题。请你帮我。 非常感谢你。