嘿,我有一个工作项目,可能需要我在程序运行期间将规则加载/卸载到有状态的 Drools 会话。(最终使用 JMX,但现在我只是想向现成的会话添加规则)
我想知道,这是否可能,在这种情况下如何?我需要重建会话吗?我试图简单地从会话中获取知识库,将我的规则文件添加到其中,然后触发所有规则,但这不起作用。
谢谢!
简短的回答是肯定的,这是来自文档的引用:
3.2.5。状态知识会话和知识库修改
状态知识会话将在“运行”部分中更详细地讨论。知识库创建并返回 StatefulKnowledgeSession 对象,并且可以选择保留对这些对象的引用。当知识库修改发生时,这些修改将应用于会话中的数据。该引用是弱引用,也是可选的,由布尔标志控制。