管理大量规则 - Drools
Managing large number of rules - Drools
我们正在计划一个业务规则系统,我们已经选择 JBoss Drools 开始测试我们的用例。我们计划按如下方式构建 DRL 文件:
Global.drl
Company1.drl
Company1/Team1.drl
Company1/Team2.drl
...
Company1/TeamN.drl
Company2.drl
...
CompanyN.drl
这种结构将帮助我们确定 运行 用于不同 类 业务对象的规则。
现在的问题是:
- 如何知道在大量规则的系统中是否已经存在similar/conflicting规则。当规则系统增长时,添加新规则是否需要开发人员在编写新规则之前手动扫描所有规则以验证冲突规则?
- 如何在如此庞大的规则系统中正确排序规则(使用显着性)?
- 有没有一种方法可以快速列出特定类别的规则,这将有助于我们在添加新规则之前了解现有的相似规则。
谢谢
一些答案:
- How to know whether there is a similar/conflicting rule already present in a system of large number of rules. When the rules system
grows, does adding the new rule requires the developer to scan through
all the rules manually to verify the conflicting rules, before writing
new rule?
没有现成的方法可以做到这一点。我发现保持一致规则库的最佳方法是进行广泛的测试以验证尽可能多的场景。
- How to correctly order the rules (using salience) in such a large rules system?
好的实践告诉我们,在规则的执行中建立顺序通常不是一个好主意。规则本身的执行方式应尽可能独立于其他规则的执行。当然,在某些情况下您需要设置特定的顺序。在这些情况下,Drools 提供了一些方法来实现这一点:
- salience:它允许您指定规则的EXECUTION顺序。
- agenda-group:它允许您将规则分组为逻辑组,并且仅EXECUTE 特定组中的规则。您可以链接这些组的执行。
- Is there a way to quickly list rules of a particular category, which will help us to know the existing rules that are similar before adding new rule.
不确定类别是什么意思,但我想答案是否定的。
希望对您有所帮助,
我们正在计划一个业务规则系统,我们已经选择 JBoss Drools 开始测试我们的用例。我们计划按如下方式构建 DRL 文件:
Global.drl
Company1.drl
Company1/Team1.drl
Company1/Team2.drl
...
Company1/TeamN.drl
Company2.drl
...
CompanyN.drl
这种结构将帮助我们确定 运行 用于不同 类 业务对象的规则。
现在的问题是:
- 如何知道在大量规则的系统中是否已经存在similar/conflicting规则。当规则系统增长时,添加新规则是否需要开发人员在编写新规则之前手动扫描所有规则以验证冲突规则?
- 如何在如此庞大的规则系统中正确排序规则(使用显着性)?
- 有没有一种方法可以快速列出特定类别的规则,这将有助于我们在添加新规则之前了解现有的相似规则。
谢谢
一些答案:
- How to know whether there is a similar/conflicting rule already present in a system of large number of rules. When the rules system grows, does adding the new rule requires the developer to scan through all the rules manually to verify the conflicting rules, before writing new rule?
没有现成的方法可以做到这一点。我发现保持一致规则库的最佳方法是进行广泛的测试以验证尽可能多的场景。
- How to correctly order the rules (using salience) in such a large rules system?
好的实践告诉我们,在规则的执行中建立顺序通常不是一个好主意。规则本身的执行方式应尽可能独立于其他规则的执行。当然,在某些情况下您需要设置特定的顺序。在这些情况下,Drools 提供了一些方法来实现这一点:
- salience:它允许您指定规则的EXECUTION顺序。
- agenda-group:它允许您将规则分组为逻辑组,并且仅EXECUTE 特定组中的规则。您可以链接这些组的执行。
- Is there a way to quickly list rules of a particular category, which will help us to know the existing rules that are similar before adding new rule.
不确定类别是什么意思,但我想答案是否定的。
希望对您有所帮助,