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

Drools属性解释

单于浩邈
2023-03-14

我有一个关于2个Drools属性的问题-显著性和无循环

rule "Hello World"
    salience -10
    when
        $m : Message( status == Message.HELLO, $myMessage : message )
    then
        System.out.println( $myMessage );
        $m.setMessage( "Goodbye cruel world" );
        $m.setStatus( Message.GOODBYE );
        update( $m );
end

rule "GoodBye"
    when
        Message( status == Message.GOODBYE, $myMessage : message )
    then
        System.out.println( $myMessage );
end

我理解这个属性阻止了一个规则被执行到相同的事实,这将导致无限循环。我的问题是关于一个我不太明白的关于这个属性的例子:

rule "interest calculation"
no-loop
when
$account : Account( )
then
modify($account) {
setBalance((long)($account.getBalance() * 1.03));
}
end

如果没有“无循环”,为什么会导致无限循环?

共有1个答案

乐正浩宕
2023-03-14

突出:逻辑总是胜过突出。如果message.status最初设置为message.hello,则另一个规则不合格,并执行“hello world”

Re no-loop:修改/更新简单地表示,就修改的事实而言,对所有内容的重新评估都是从头开始的。因此,Account被更新,回到起点,重新评估创建了这个琐碎匹配规则的另一个激活。

 类似资料:
  • 本文向大家介绍innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解,包括了innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解的使用技巧和注意事项,需要的朋友参考一下 innerHTML属性用来读取或设置某个节点内的HTML代码。 outerHTML属性用来读取或设置HTML代码时,会把节点

  • 我有一个相当简单的情况,我想在我的规则条件中检查一个属性是否为空。 我在调试中跟踪了这一点。正在插入一个Fact,属性为null,但规则仍然会触发。控制台输出如下。 如果我将条件更改为,则规则不会触发。所以它似乎与我所期望的完全相反。 我们确实有一个使用函数的解决方法,但它有点难看,我不明白为什么它首先不起作用。 编辑1 口水版本是5.3.0。 事实是通过另一条规则加载的,该规则使用来自的和服务方

  • 口水5,方言mvel 我希望此规则仅在存在任何MappingFile对象时匹配,并且仅当带有原因码的BLuReport对象为NULL时匹配 我怎样才能写出那个比较表达式。。。我尝试了几件事都没有成功: 此外,我不得不添加retract(BR),因为更新后我一直得到一个无限循环。。。我的更新正确吗?!

  • 本文向大家介绍Python属性和内建属性实例解析,包括了Python属性和内建属性实例解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Python属性和内建属性实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 私有属性添加getter和setter方法 2. 使用property升级getter和setter方法 运行

  • 本文向大家介绍JavaScript prototype属性详解,包括了JavaScript prototype属性详解的使用技巧和注意事项,需要的朋友参考一下 每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。 私有

  • “env”为:“org.springframework.core.env.environment” 现在,当我在Eclipse中运行Spring Boot应用程序时,我希望这段代码从类路径中的application.properties获取属性(在project/src/main/resources中),但它使用的是project/config中的另一个application.properties