我正在用Drools和Drools Guvnor开始一个项目。
我的规则部署在drools guvnor中。当您进行包发布、构建和发布时,我的规则引擎实例可以通过drools Guvnor公开的pkg文件访问这些规则。
这一切都很好,我正在寻找的是一种在运行时禁用规则的解决方案。
我现在唯一的解决方案是转到guvnor,将规则存档,并对包含该规则的包进行构建+发布。
有没有别的策略?
发布于 2012-06-02 00:13:10
有几种方法可以解决这个问题,具体取决于您的需求和架构。
规则X已启用(),然后...
上面的布尔表达式可以从你的规则的条件中访问变量绑定,以及规则属性,注释,显然,如果你想定义条件来激活DRL file.
ksession.fireAllRules(新RuleNameStartsWithAgendaFilter("x") );
有关更多信息,请查看以下界面:
以下是文档(向下滚动到主题3.3.3.4.1):
http://docs.jboss.org/drools/release/5.4.0.Final/drools-expert-docs/html_single/index.html#d0e2792
发布于 2012-06-01 06:48:39
你可以在工作记忆中为某些事实的存在添加条件。类似于:
rule "RuleA"
when
not( RuleADisabled() )
....
then
....
end并在java代码中禁用该规则:
ksession.insert( new RuleADisabled() );https://stackoverflow.com/questions/10832778
复制相似问题