Drools を使用して Web アプリケーションを開発しています。drools ファイルはすべてデータベースに保存されます。いくつかのルールを変更した後、新しい KnowledgeBase を作成し、ルールから作成したパッケージを追加する必要があります。すべての KnowledgeBase を再生成するには非常に時間がかかるため、必要な KnowledgeBase 内のパッケージのみを更新する方法。たとえば、次のステップを作成します。
ユーザーがルールを編集し、適用ボタンを押します。その後、私は何かをします:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newReaderResource( Reader, getClass() ),ResourceType.DRL ); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
ルール スクリプトのテキストをデータベースに保存し、Reader を使用して KnowledgeBuilder にパッケージを追加します 。 +a+データベース
ナレッジ ベースから名前でパッケージを削除し、再度追加しようとしましたが、成功しませんでした。ナレッジ ベースを更新するためにしなければならないこと。ユーザーがルールを編集して保存するたびに新しいナレッジ ベースを作成することはできません。ナレッジ ベースの一部を更新するために何らかのアクションを実行する必要があります。
助けてください。