流口水可重用性问题

时间:2011-01-13 03:17:48

标签: drools

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

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

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

1 个答案:

答案 0 :(得分:1)

  1. 这样做的好方法是使用议程组。其他方法是,明智地将您的规则分开。

  2. 在我提出问题时,您可以使用Fact Handles。

    在这里使用StatefullKnowledgeSession

    FactHandle objHandle = ksession.insert(fact);

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

    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章。有状态知识会议。