0

xsl ファイルから生成するルール ファイルが 50 個ほどあります。各 drl ファイルには、それぞれ約 500 のルールがあります。各ルールは、特定の文字列を含む、開始または終了する文字列を検索するようなものです。現在、すべてのルールがロードされているナレッジベースは 1 つだけです。現在実行中のルールはパフォーマンスに影響を与え、実行時間の大部分を占めています。1 秒あたり数千のリクエストがサービスにヒットし、わずかなパフォーマンスの改善が私たちに利益をもたらします。パフォーマンスを向上させる方法はありますか。私が考えていた 1 つの方法は、一連のルールごとに異なる knowledgeBase を作成し、それらを呼び出すことでした。これは正しい方法ですか、それともルールを最適化するための他の最善の方法はありますか?

ルールの例:

rule "StampingRules_26"
salience 200000
when
    $map : Map(UTILITY.supportsDirectoryType($map,'PCM'),
               UTILITY.supportsDirectory($map,'CMMSCPE'),
               ! UTILITY.exitAllRules($map),
               ! executed,
               UTILITY.applicable($map,'resellerName'),
               UTILITY.setRuleLevel($map,'resellerCountry'),
               UTILITY.checkRuleLevel($map,'US'),
               UTILITY.startsWith ($map, 'Advent System~~AdventSystem'))
then
    ((Map)$map.get('PARAMETERS')).put('replaceParameter','csd_id'); 
     String replaceParameter='csd_id';
    ((Map)$map.get('PARAMETERS')).put(replaceParameter, '001d000001Fsm72AAB');
    ((RulesUtility)$map.get('UTILITY')).setExitAllRules($map,'yes');
end

前もって感謝します

4

1 に答える 1