首页 文章

流口水可重用性问题

提问于
浏览
1

我目前正在评估JBoss Drools,并希望从社区寻求有关我迄今为止发现的可重用性问题的帮助:

  • 要创建知识库,必须导入.drl文件,但是如果我只想使用.drl文件中的规则子集,而不是形成规则组(使用议程组或RuleFlowGroup),还有其他方法可以做这个?使用规则组可以轻松地使规则定义变得混乱,假设您有10个不同的规则子集重叠,那就是10个规则组......

  • 有没有办法动态地将事实插入到规则知识库中?在我看来,在触发规则引擎之前需要将所有必需的事实/数据插入到会话中,从而产生性能瓶颈......例如,如果其中一个事实存在于数据库中,则除非事实来自数据库,否则无法触发引擎绘制 . 如果引擎可以首先处理其他事实并且当数据库中的事实准备就绪时,将动态插入到会话中会更好 .

1 回答

  • 1
    • 这样做的好方法是使用议程小组 . 其他方式是,明智地分开你的规则 .

    • 在我的问题下,你可以使用Fact Handles .

    在这里使用 StatefullKnowledgeSession .

    FactHandle objHandle = ksession.insert(fact);

    之后,当您从数据库中准备好事实时,您可以修改当前运行会话中的事实 .

    ksession.update(objHandle, newFactObject(of same class))
    

    有关更多详细信息,请转至http://downloads.jboss.com/drools/docs/5.1.1.34858.FINAL/drools-expert/html_single/index.html第2.1.2章 . 有状态知识 Session .

相关问题