最初のルールがマッチした後に終了するルールエンジンを構築しています。ルールの順序付けは、入力が最初のルールと一致するとすぐに、Salience、ロックオンアクティブ(再整合を防ぐため)、およびアクティベーショングループを終了することで実行されます。Drools 7.2:ルールエンジンの構築(モニタモードと高性能)
ビジネスはモニタモードではないルールへの入力をエンジンが引き続き一致させなければならないモニタモードの新しい要件を持つようになりました。ここ
Object(attr1 = 1, attr2 = 2)
monitor Rule 1: if (attr1 = 1)
non-monitor Rule 2: if(attr = 1 and attr2= 2)
non-monitor Rule 3: ..
、それが一致する必要があり、ルール1およびルール2が、なければならないので、すぐにそれが非監視モードでなので、ルール2が一致するように、出口(より高い性能のため)の両方:例えば
。モニターモードのルールは評価されたかどうかを確認するためだけに使用され、ビジネス目的でバックエンドでイベントを発生させます。
私は現在、データベースからルールを動的に読み込むためにPackageDescBuilder、RuleDescrBuilderなどを使用しています。単純なStatelessKieSessionを使用して、RHSの一部として述語内の結果を評価して格納します。
KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId());
StatelessKieSession kieSession = kContainer.newStatelessKieSession();
kieSession.execute(predicate);
Q:新しいルールを作成するには、どうすればよいでしょうか。
私はここで、このドキュメントを参照しています: https://docs.jboss.org/drools/release/7.2.0.Final/drools-docs/html_single/#_rule_attributes
感謝を!
、それがお役に立てば幸いです。 – laune