0

我在 Tomcat 7 上运行 Drools 6.0.0.Beta2。我一直遇到一个问题,即我的所有规则在初始有效负载上执行一次,并且只有第一个规则在后续有效负载上执行,即使有效负载与第一的。有人向我建议,问题出在某个规则的条件下,但我不明白当规则在第一个有效负载上完美执行时会看到什么。这些规则位于单独的规则流中,并且有很多第二种类型的规则只是对测量参数使用不同的值。

以下是前两条规则的示例:

 rule "encounter type values"
 ruleflow-group "encounter-types"
   when
      $f: Foo()
      $b: Bar() from $f.getBars()
      $s: Foo.Something(type == Foo.Something.TYPE_1 ||  type == Foo.Something.TYPE_2 || type == Foo.Something.TYPE_3, value> 0.0) from $b.getSomethings()
   then
      FlyingMonkey m = new FlyingMonkey($f, $s.getDate(), $s.getType, $s.getValue());
      insert(m);
   end

rule "do math for type and date"
ruleflow-group "yay-math"
   when
      $m: FlyingMonkey(value!=null || score!=null, type=="TYPE1", age>-30, age<30)
   then
      Measurement fact = new Measurement($m, 1, 2, 3, 4, 5, 6);
      insert(fact);
   end

有谁知道为什么会发生这种情况?这是我正在使用的软件版本中的一个错误,还是我的规则中更有可能第二次莫名其妙地破坏了它们?

编辑:我使用的规则在 Drools 5.0.1 版中运行得非常好。

4

1 回答 1

1

看来这实际上是 Drools 5.5.Final 及更高版本中的一个错误。此处已报道:https ://issues.jboss.org/browse/DROOLS-141

另一个用户也有同样的问题,并在这里记录了他的进度:http: //drools.46999.n3.nabble.com/Ruleflow-not-working-with-stateless-session-in-drools-server-5-5-0-最终-td4021624.html

于 2013-05-21T14:45:40.883 回答