可视化配置规则引擎
采用spring cloud微服务架构
vue
npm install
npm run dev
apache-skywalking-apm-bin/bin/startup.sh
采用drool规则引擎
根据自定义变量,利用javaassist动态生成drool的输入fact
[when][]lt = <
[when][]le = <=
[when][]ge = >=
[when][]gt = >
[when][]eq = ==
[when][]ne = !=
[when][]and = &&
[when][]or = ||
[when][]contains = contains
[when][]notcontains = not contains
[when]input {field:[\w\.]+} = {field}()
[when]- {field:[\w\.]+} {operator} {value:.+} = {field} {operator} {value}
[when]resultInit = $ruleResult:RuleResult()
[then]result=$ruleResult.addRuleHit(drools.getRule().getName())
输入dsrl
rule "test"
when
resultInit
input
- sex >= 1
then result ;
end
rule "test2"
when
resultInit
input
- sex > 2 and age < 12
then result ;
end
输出drl
package xyz.sally.core.rules.uuid67974f6b3897482aa7776a4bdd643b05
import xyz.sally.core.fact.*
import xyz.sally.core.po.*
rule "test"
when
$ruleResult:RuleResult()
$input:xyz.sally.core.fact.input.Input67974f6b3897482aa7776a4bdd643b05(sex >= 1)
then $ruleResult.hitRule(drools.getRule().getName()) ;
end
rule "test2"
when
$ruleResult:RuleResult()
$input:xyz.sally.core.fact.input.Input67974f6b3897482aa7776a4bdd643b05(sex > 2 && age < 12)
then $ruleResult.hitRule(drools.getRule().getName()) ;
end