Regel "one"geifert Aktivierung-Gruppe arbeitet nicht wie erwartet
activation-group "Harris"
salience 10
when
$p : Person(age < 10);
then
$p.setDiscount(0.1);
Ende
Regel "zwei"
activation-group "Harris"
salience 10
when
$p : Person(age > 10);
then
$p.setDiscount(0.2);
Ende
Wenn ich einige Personen einsetzen zu arbeiten Speicher durch KSession.insert (Object), nur die erste Person wird ausgewertet, die anderen Personen werden einfach ignoriert. Mein Verständnis über Drools Aktivierungs-Gruppe ist, dass, wenn ich X Anzahl der Regeln, die zu der gleichen Aktivierungs-Gruppe mit verschiedenen Salienz Werte gehören, jeder Person wird von den Regeln verarbeitet werden und die mit der höchsten Salience wird gefeuert und Der Rest wird ignoriert. Sobald das abgeschlossen ist, wird die nächste Person durchkommen und den Vorgang wiederholen. Was Ich habe erlebt, dass die erste Person, die eine Regel in dieser Aktivierungsgruppe auslöst, die gesamte Aktivierungsgruppe deaktiviert und keine weiteren Personen werden verarbeitet. Irgendwelche Vorschläge?
Zusätzlich zu laune Antwort unten Option a, wenn Sie keine Joins mit anderen Regeln auf mehreren 'Person' Instanzen durchführen müssen, könnten Sie eine StatelessKieSession verwenden, die für jede gegebene 'Person' Instanz – tarilabs