1

drlに次のdroolsルールがあると言います

global java.lang.Boolean test;
rule "Initialize global"
salience 1000
when
then drools.workingmemory.setGlobal("test", new Boolean(true))
end

これは期待どおりに機能しますが、ルールを毎回起動したくないので、グローバルテストが初期化されているかどうかのチェックを追加し、初期化されていない場合は設定します。そうでない場合は、ルールを起動しないでください。これをどのように行いますか?

これにはループなしも必要だと思います。ご協力いただきありがとうございます

4

1 に答える 1

2

制約なしでルールを使用することは、初期化ルールの一般的なパターンです。使用しているルールはセッションごとに1回だけ実行されるため、再実行について心配する必要はありません。ループなしについては、ルールに条件がないため、再アクティブ化できません。RHSでmodify()またはupdate()を使用している場合、再帰的なアクティブ化を回避するためにループなしが使用されます。

よろしくお願いします'

于 2012-12-08T09:09:10.837 に答える