我正在尝试与Easyrules一起工作。
我创建了3个规则A,B&C具有优先级1、2&分别为3。
即使规则A 被评估为 true ,并且具有最高优先级,但正在评估优先级较低的规则(即B& c)。
>该规则优先级如何?
是否有关于将优先级较高的规则评估为true的工作,那么未评估优先级的规则?
优先级与是否执行规则无关。它仅表示规则的执行顺序
来自文档:
轻松规则中的每个规则都有优先级。这代表默认 命令射击规则的命令。默认情况下,值较低 表示更高的优先级。
您也可以阅读:
如果其组合规则的所有条件 很满意。当应用复合规则时,所有行动 组成规则是按照自然规则顺序执行的 默认情况下的规则优先级。
如果要在应用规则时跳过引擎的下一个规则,则应使用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
规则。