java - Drools Execution,获取撤回数量

标签 java drools business-rules drools-guvnor

我正在尝试返回 drools session 执行的撤回次数。

我可以获得执行次数:

...
final Command fireAllRulesCmd = CommandFactory.newFireAllRules("executed-rules");
cmds.add(fireAllRulesCmd);
...
session.execute(CommandFactory.newBatchExecution(cmds));
final Integer executedRules = (Integer) execute.getValue("executed-rules");
....

是否有类似的方法来获取所有“retracted-rules”?

谢谢!!

问候

最佳答案

实现org.kie.api.event.kiebase.KieBaseEventListener,并在方法afterRuleRemoved中对事件进行计数:

class MyKieBaseEventListener implements KieBaseEventListener {
    private int removedRules;
    public void afterRuleRemoved(AfterRuleRemovedEvent event){
        removedRules++;
    }
    public int getRemovedRules(){
        return removedRules;
    }
    // other methods
}

您必须将此监听器附加到 KieBase。

kieBase.addEventListener( new MyKieBaseEventListener() );

关于java - Drools Execution,获取撤回数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25845932/

相关文章:

spring - Drools 无法在 Spring Boot 项目中加载规则

java - 如何确保作业仅运行一次/或仅由 5 个负载平衡器服务器之一运行

java - hashmap中的entrySet是如何创建和修改的?

Java-在类中找不到 Main 方法

Drools 用于多客户端 Web 应用程序可行吗?

java - Drools:查找映射是否包含部分键并将其分配给变量

drools - 启动 Optaplanner 应用程序时异常子服务没有父服务

Biztalk - 可以以编程方式创建规则/策略吗?

java - 验证业务规则

Java 8 : performance of Streams vs Collections