搜索

84.2. 规则基础配置

download PDF

Red Hat Decision Manager 包含一个 RuleBaseConfiguration.java 对象,您可以在决策引擎中配置异常处理程序设置、多线程执行和顺序模式。

对于规则基础配置选项,请从红帽客户门户网站下载 Red Hat Process Automation Manager 7.13.2 Source Distribution ZIP 文件,再导航到 ~/rhpam-7.13.2-sources/src/drools-$VERSION/drools-core/src/main/java/org/drools/core/RuleBaseConfiguration.javahttps://access.redhat.com/jbossnetwork/restricted/listSoftware.html

以下规则基础配置选项可用于决策引擎:

drools.consequenceExceptionHandler

配置后,此系统属性定义管理规则后果所引发异常的类。您可以使用此属性为决策引擎中的规则评估指定自定义异常处理程序。

默认值: org.drools.core.runtime.rule.impl.DefaultConsequenceExceptionHandler

您可以使用以下选项之一指定自定义异常处理程序:

  • 在系统属性中指定异常处理程序:

    drools.consequenceExceptionHandler=org.drools.core.runtime.rule.impl.MyCustomConsequenceExceptionHandler
  • 在以编程方式创建 KIE 基本时指定异常处理程序:

    KieServices ks = KieServices.Factory.get();
    KieBaseConfiguration kieBaseConf = ks.newKieBaseConfiguration(); kieBaseConf.setOption(ConsequenceExceptionHandlerOption.get(MyCustomConsequenceExceptionHandler.class));
    KieBase kieBase = kieContainer.newKieBase(kieBaseConf);
drools.multithreadEvaluation

启用后,该系统属性可让决策引擎通过将 Phreak 规则网络划分为独立的分区,从而并行评估规则。您可以使用此属性提高特定规则基础的规则评估速度。

默认值: false

您可以使用以下选项之一启用多线程评估:

  • 启用多线程评估系统属性:

    drools.multithreadEvaluation=true
  • 以编程方式创建 KIE 基础时启用多线程评估:

    KieServices ks = KieServices.Factory.get();
    KieBaseConfiguration kieBaseConf = ks.newKieBaseConfiguration();
    kieBaseConf.setOption(MultithreadEvaluationOption.YES);
    KieBase kieBase = kieContainer.newKieBase(kieBaseConf);
警告

并行决策引擎目前不支持使用查询、等同于或日程表组的规则。如果 KIE 库中存在这些规则元素,编译器会发出一个警告,并自动切回到单线程评估。然而,在某些情况下,决定引擎可能无法检测不支持的规则元素和规则。例如,决定引擎可能无法检测规则何时依赖 DRL 文件中的规则排序授予隐式 salience 属性,从而导致因为不支持的 salience 属性导致评估不正确。

drools.sequential

启用后,这个系统属性可在决策引擎中启用连续模式。在连续模式中,决策引擎按照决策引擎日程表中列出的顺序来评估规则,而不考虑工作内存的变化。这意味着,决策引擎会忽略规则中的所有 插入修改 或更新 语句,并在单个序列中执行规则。因此,规则执行可能会以连续模式更快,但重要的更新可能不会应用到您的规则。如果您使用无状态 KIE 会话,且您不希望执行规则在日程中影响后续规则,则可以使用此属性。顺序模式只适用于无状态 KIE 会话。

默认值: false

您可以使用以下选项之一启用连续模式:

  • 启用后续模式系统属性:

    drools.sequential=true
  • 以编程方式创建 KIE 基本时启用顺序模式:

    KieServices ks = KieServices.Factory.get();
    KieBaseConfiguration kieBaseConf = ks.newKieBaseConfiguration();
    kieBaseConf.setOption(SequentialOption.YES);
    KieBase kieBase = kieContainer.newKieBase(kieBaseConf);
  • 在特定 Red Hat Decision Manager 项目的 KIE 模块描述符文件中启用连续模式(kmodule.xml):

    <kmodule>
      ...
      <kbase name="KBase2" default="false" sequential="true" packages="org.domain.pkg2, org.domain.pkg3" includes="KBase1">
        ...
      </kbase>
      ...
    </kmodule>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.