Drools 流口水

Drools 流口水,drools,Drools,我有一个关于两个流口水属性的问题-显著性和无循环 显著性: 我们应该期望“再见”规则首先被触发(因为它的显著性更高),但是这并没有发生,相反,“你好世界”规则首先被触发,然后才是“再见” 无循环: 我理解,这个属性阻止执行规则,而执行规则会导致无限循环。我的问题是关于这个属性的一个例子,我不太了解: rule "interest calculation" no-loop when $account : Account( ) then modify($account) { setBalance((

我有一个关于两个流口水属性的问题-显著性和无循环

显著性:

我们应该期望“再见”规则首先被触发(因为它的显著性更高),但是这并没有发生,相反,“你好世界”规则首先被触发,然后才是“再见”

无循环:

我理解,这个属性阻止执行规则,而执行规则会导致无限循环。我的问题是关于这个属性的一个例子,我不太了解:

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

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

关于显著性:逻辑总是胜过显著性。如果Message.status最初设置为Message.HELLO,则另一条规则不符合条件,将执行
“HELLO World”

Re no loop:修改/更新仅仅意味着,就修改后的事实而言,重新评估一切都从零开始。所以,帐户被更新,回到原点,重新评估创建了这个简单匹配规则的另一个激活

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