Drools - Возможность определять правила во время выполнения?
Можно динамически определять правила во время выполнения?
Также измените набор правил во время выполнения.
Например,
at time = t_1 the ruleset is { R1, R2, R3 }
at time = t_2 the ruleset is { R1, R3, R4 }
.....
R1, R2 - это правила, определенные во время выполнения.
Спасибо.
Ответы
Ответ 1
Да, Drools полностью динамичен. Вы можете добавлять/удалять/заменять правила во время выполнения. Все существующие сеансы автоматически обновляются, чтобы сохранить согласованность. Проверьте документацию /javadoc:
http://www.jboss.org/drools/documentation
И здесь вы можете увидеть некоторые интеграционные тесты:
DynamicRulesTest.java
Ответ 2
Прочитайте документацию и проверьте тесты "KnowledeAgent", чтобы узнать, что вы можете сделать и как вы можете это сделать.
Ответ 3
В Drools 5 вам просто нужно изменить KnowledgeBase, он будет неявно обновлять KnowledgeSession. Именно об этом говорят вам интеграционные тесты. Для этого вам не нужен KAgent.