【问题标题】:JBoss Drools checks conditions onceJBoss Drools 检查条件一次
【发布时间】:2011-02-07 19:26:18
【问题描述】:

我已经在我的 Java 项目中实现了 Drools。所有规则都会触发,但条件只会在触发后立即检查一次。

这是 Drools 的行为方式吗?我需要它不断检查布尔值是否有任何变化。

【问题讨论】:

    标签: java jboss rules drools


    【解决方案1】:

    这就是前向链接规则引擎的行为方式(非常高效)。

    如果您的事实发生变化(因此,如果它的布尔属性/方法的结果发生变化),则应通过workingMemory.updated(fact, factHandle) 通知规则引擎。然后,规则引擎将触发所有需要根据该更改触发的规则(而不是单个规则)。

    Here's a diagram to explain why this can make your app a lot more scalable because it has to run a lot less code.

    【讨论】:

    • 是的,我同意@Geoffrey De Smet 的观点。您需要使用最新事实更新会话。或者您可以使用“无循环”属性。当规则的结果修改一个事实时,它会导致规则再次激活,导致递归。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2011-01-17
    • 1970-01-01
    • 2012-06-05
    • 2018-05-11
    • 1970-01-01
    • 2020-03-22
    相关资源
    最近更新 更多