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

Drools激活-基团未按预期工作

潘弘扬
2023-03-14
activation-group "Harris"

salience 10

when

    $p : Person(age < 10);

then

    $p.setDiscount(0.1);
activation-group "Harris"

salience 10

when

    $p : Person(age > 10);

then

    $p.setDiscount(0.2);

结束

当我通过ksession.insert(Object)将一些人插入工作记忆时,只计算第一个人,忽略其他的人。我对Drools激活组的理解是,如果我有X个规则,这些规则属于同一个激活组,具有不同的显着性值,那么每个人都将被规则处理,显着性最高的将被激发,其余的将被忽略。一旦完成,下一个人将通过并重复这个过程。我所经历的是,第一个触发该激活组中任何规则的人将禁用整个激活组,不再处理其他人员。有什么建议吗?

共有1个答案

漆雕疏珂
2023-03-14

激活组中只有一个规则将被激活,即,第一个激活的规则将取消同一组中其他规则的任何现有激活。这很明显。

不要使用激活组,如果你想对许多人的事实做同样的事情。

(a)只插入一个,触发所有规则-重复。

 类似资料:
  • 在运行规则之前,我正在尝试将date设置为与我对象中的日期变量相同的日期。我使用此配置来创建我的 在运行规则之前,我使用将会话的日期设置为所需日期。 这导致使用滑动窗口的规则出现错误。比如说,检查1小时内通过的对象,而我在最后一个小时内没有任何对象。前一天我只有3件物品。下面是一个对象数据集示例。 我有一条规则,检查在1小时内是否有超过2个对象具有相同的客户ID。 当我用这些值传递对象时。上面的规

  • 我正在使用spring Roo并希望访问Controller类中的一个bean,该类在ApplicationContext.xml中具有以下配置: 配置类本身是: 在我的Controller中,我认为一个简单的Autowired注释应该可以完成这项工作 在启动过程中,spring在setSkipWeeks方法中打印消息。不幸的是,每当我在控制器中调用config.getSkipWeeks()时,它

  • 当我运行以下程序时,它只打印 然而,从Java 8的equalsIgnoreCase文档中我们发现: 如果以下至少一项为真,则两个字符c1和c2被视为相同的忽略情况: •对每个字符应用java.lang.character.ToUpperCase(char)方法会产生相同的结果 所以我的问题是为什么这个程序不打印 在这两种操作中,都使用了大写字符。

  • 我试图使用来传输我根据前面的问题设置的自定义标头。 我在文件中读到... 我的属性包括:

  • 我正在和selenium一起工作,刮一些数据。 有一个按钮在页面上,我正在点击说“Custom_Cols”。这个按钮为我打开了一个窗口,我可以在那里选择我的列。 我的问题是为什么新窗口上的元素不可见,即使我正在等待元素的可见。补充一下,我已经尝试增加延迟时间,但我还是会偶尔出现这个错误。 我的密码在这里