Drools - 能否在运行时定义规则?

时间:2012-02-23 22:04:47

标签: dynamic runtime rules drools

可以在运行时动态地定义规则吗? 还可以在运行时更改规则集。

例如,

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

R1,R2是在运行时定义的规则。

感谢。

3 个答案:

答案 0 :(得分:18)

是的,Drools完全是动态的。您可以在运行时添加/删除/替换规则。所有现有会话都会自动更新,以保持一致性。查看documentation / javadoc:

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

在这里你可以看到一些集成测试:

DynamicRulesTest.java

答案 1 :(得分:2)

阅读文档并查看有关“KnowledeAgent”的测试,了解您可以做什么以及如何做。

答案 2 :(得分:0)

在Drools 5中,您只需要更改KnowledgeBase,它将使KnowledgeSession隐式更新。这就是集成测试告诉你的。你实际上并不需要KAgent。