您好,登录后才能下订单哦!
本篇内容介绍了“sql规则引擎设计是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
最近用到了规则引擎 ,简单做一个总结。 规则,说白了,就是,现状(fact)怎么样,如果(condition)怎么样,那么(action)怎么样. 规则引擎使用了rete算法,我这边使用的是drools, 总之归绕一个核心,生成drl文件,其他的都有drools来执行。
为了方便设计,对业务进行了统一的封装OP(入参:param,实体:body,出参:res),执行器Exector,这样就可以少引入class。 一个标签表,一个规则引擎表。 标签里有各种数据,变量,实例变量,关系运算,指令。
条件直接生成
行为
sql填充:把sql给规则引擎。sql是可以带参数的,使用的是变量库里的参数。
$op.setBody
{
"$op.setBody": " select lock_on_active from t_rule_engine where id='${id}' "
}
查询数组:查询sql,得到数组。
Executor.sqlList($op);
{"Executor.sqlList ($op);":""},
查询数值:查询sql得到数字
Executor.sqlLong($op);
{"Executor. sqlLong($op);":""},
查询map:查询sql得到map
Executor.sqlMap($op);
{"Executor. sqlMap($op);":""},
查询字符:查询sql得到字符串。
Executor.sqlStr($op);
{"Executor. sqlStr($op);":""},
触发规则:重新在规则文件里执行。
update($op);
{"update($op);":""},
变量copy:把执行的结果放到入参当条件。
Executor.paramCopy
{"Executor.paramCopy":["data","data1"]} //把查询结果data的值,赋值到参数里data1
变量赋值:把一个常量值赋值给变量,这个常量,也可以是实例变量库里的值。
Executor.let
{"Executor.let":["data","cheitemContent"]} //把 data 赋值给参里里的 cheitemContent
目前,只有“sql填充”、“变量copy”是有参之外,其他都是无参动作。
最终生成规则文件drl
“sql规则引擎设计是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。