【发布时间】:2012-03-14 09:25:48
【问题描述】:
可以在运行时完全动态地定义规则吗? 还要在运行时更改规则集。
例如,
at time = t_1 the ruleset is { R1, R2, R3 }
at time = t_2 the ruleset is { R1, R3, R4 }
.....
R1、R2 是在运行时定义的规则。
谢谢。
【问题讨论】:
标签: 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 是在运行时定义的规则。
谢谢。
【问题讨论】:
标签: dynamic runtime rules drools
是的,Drools 是完全动态的。您可以在运行时添加/删除/替换规则。所有现有会话都会自动更新以保持一致性。检查文档/javadoc:
http://www.jboss.org/drools/documentation
在这里你可以看到一些集成测试:
【讨论】:
KnowledgeBase 和 KnowledgeSession),而 KieBase 类没有 addPackage 方法。
在 Drools 5 中,您只需要更改 KnowledgeBase,它将使 KnowledgeSession 隐式保持最新。这就是集成测试告诉你的。您实际上不需要 KAgent。
【讨论】:
阅读文档并查看有关“KnowledeAgent”的测试,了解您可以做什么以及如何做到这一点。
【讨论】: