【问题标题】:Drools fire only those rules which names are configured in a file Spring bootDrools 只触发那些名称在文件 Spring boot 中配置的规则
【发布时间】:2020-10-19 11:02:15
【问题描述】:

我有一个 Yml(我可以接受任何扩展名)文件,其中存储了所有规则的名称。我需要触发此文件中配置的所有名称。当我想禁用执行规则时,我只会评论或删除该文件中的规则名称,这样该规则就不会被执行。

【问题讨论】:

    标签: java spring drools


    【解决方案1】:

    引入EligibleRulesSet<String> 规则,并为每个规则添加附加条件。

    rule "Rule 1"
    when
        EligibleRules(rules contains "Rule 1")
        ...
    

    EligibleRules 的单个副本插入会话中,当符合条件的规则列表发生更改时更新fireAllRules() 之前的规则集,并更新事实句柄以供流口水注意更改。

    【讨论】:

    • 你能不能给我看一段简单的代码,这将有助于用 spring boot 执行它
    • 如果您可以帮助配置某些配置文件(如属性或 yml 文件)中的所有规则名称,这也很有帮助,以便我们可以从该文件中删除规则名称并将规则名称添加到该文件这样只有那些规则会被执行
    • @vinodchowdary 基本上,您将要执行的规则列表传递到工作内存中(在此示例中由 EligibleRules 对象包装;如您所见,该对象定义了一个名为“规则”的列表,其中包含来自您的 yml 配置的列表。)
    猜你喜欢
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    相关资源
    最近更新 更多