web-dev-qa-db-ja.com

Drools-実行時にルールを定義する機能?

実行時に完全に動的にルールを定義することは可能ですか?また、実行時にルールセットを変更します。

例えば、

at time = t_1 the ruleset is { R1, R2, R3 } 
at time = t_2 the ruleset is { R1, R3, R4 } 
..... 

R1、R2は、実行時に定義されるルールです。

ありがとう。

15
Soumya Simanta

はい、Droolsは完全に動的です。実行時にルールを追加/削除/置換できます。一貫性を保つために、既存のすべてのセッションが自動的に更新されます。ドキュメント/ javadocを確認してください。

http://www.jboss.org/drools/documentation

そして、ここでいくつかの統合テストを見ることができます:

DynamicRulesTest.Java

19
Edson Tirelli

ドキュメントを読み、「KnowledeAgent」に関するテストをチェックして、何ができるか、どのようにできるかを確認してください。

2

Drools 5では、KnowledgeBaseを変更するだけで、KnowledgeSessionが暗黙的に最新の状態に保たれます。それが統合テストが教えてくれることです。実際には、そのためのKAgentは必要ありません。

0
MattRossmann