drools规则引擎中易混淆语法分析_循环触发导致死循环分析

Posted 阿智 mikeve@163.com

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了drools规则引擎中易混淆语法分析_循环触发导致死循环分析相关的知识,希望对你有一定的参考价值。

整理了下最近在项目中使用drools出现的问题,幸好都在开发与测试阶段解决了,未波及到prod。

首先看这样两条规则

/**
 * 规则1_set默认利率
 */
rule "rate_default"
        no-loop true
    when
        $request:AmountRateRequest(calculateEnum == CalculateEnum.INTEREST || calculateEnum == CalculateEnum.AMOUNT_INTEREST)
        $response:AmountRateResponse(rateMap not contains LoanTermEnum.LOANTERM3)
        $data:DroolsData()
    then
        DroolsClient.logger.debug("{}执行规则{}", $response.getUserId(), drools.getRule().getName());
        $response.getRateMap().put(LoanTermEnum.LOANTERM3, RateFactory.DEFAULT_RATE);
        update($response);
end

/**
 * 规则2_set默认利率+万1
 */
rule "rate_up1"
        no-loop true
    when
        $request:AmountRateRequest(calculateEnum == CalculateEnum.INTEREST || calculateEnum == CalculateEnum.AMOUNT_INTEREST)
        $response:AmountRateResponse(rateMap not contains LoanTermEnum.LOANTERM3)
    then
        DroolsClient.logger.debug("{}执行规则{}", $response.getUserId(), drools.getRule().getName());
        $response.getRateMap().put(LoanTermEnum.LOANTERM3, Rate);
        update($response);
end

 

以上是关于drools规则引擎中易混淆语法分析_循环触发导致死循环分析的主要内容,如果未能解决你的问题,请参考以下文章

Java规则引擎Drools急速入门

Drools 规则引擎一文读懂

[Drools]JAVA规则引擎 -- Drools

JAVA规则引擎 -- Drools

drools规则引擎因为内存泄露导致的内存溢出

drools规则引擎因为内存泄露导致的内存溢出