Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在easy rules中触发的规则是否基于优先级而非独占性?_Java_Rule Engine - Fatal编程技术网

Java 在easy rules中触发的规则是否基于优先级而非独占性?

Java 在easy rules中触发的规则是否基于优先级而非独占性?,java,rule-engine,Java,Rule Engine,我正在努力与你合作 我创建了3个规则A、B和C,分别具有优先级1、2和3 尽管规则A被评估为true且具有最高优先级,但优先级较低的规则(即B&C)仍在评估中 这个规则的优先级是如何工作的 如果优先级较高的规则求值为true,则不求值优先级较低的规则,是否有解决方法?优先级与是否执行规则无关。仅表示规则的执行顺序 从: Easy Rules中的每个规则都有优先级。这表示默认值 启动已注册规则的顺序。默认情况下,值较低 代表更高的优先级 你也可以阅读: 如果组合规则的所有条件都满足,则会触发组合规

我正在努力与你合作

我创建了3个规则A、B和C,分别具有优先级1、2和3

尽管规则A被评估为true且具有最高优先级,但优先级较低的规则(即B&C)仍在评估中

这个规则的优先级是如何工作的


如果优先级较高的规则求值为true,则不求值优先级较低的规则,是否有解决方法?

优先级与是否执行规则无关。仅表示规则的执行顺序

从:

Easy Rules中的每个规则都有优先级。这表示默认值 启动已注册规则的顺序。默认情况下,值较低 代表更高的优先级

你也可以阅读:

如果组合规则的所有条件都满足,则会触发组合规则 我们很满意。应用组合规则时,所有 组合规则按照规则的自然顺序执行,即 默认情况下规则优先级

如果要在应用规则时跳过下一个规则,则应使用
skipOnFirstAppliedRule
参数将引擎参数设置为
true

RulesEngine  rulesEngine = RulesEngineBuilder.aNewRulesEngine()
                          .withSkipOnFirstAppliedRule(true)
                          .build();

// add your rules in the RulesEngine
rulesEngine.registerRule(new A());
rulesEngine.registerRule(new B());
rulesEngine.registerRule(new C());

// execute the rules
rulesEngine.fireRules();

在您的情况下,将只执行
A
规则。

谢谢。这澄清了很多事情。这意味着,我必须结合使用优先级和
。以及kiponfirstappliedrule(true)
来实现所需的行为。