【Urule介绍】开源可视化规则引擎

【Urule介绍】开源可视化规则引擎Urule感染到小叶同学的是,里面的动作全部可以自定义,比如上图,业务场景是用户登录、分享等事件MQ触发规则校验,但是有一部分数据可能不从MQ传递过来,那么想要拿到用户的一些特殊数据,咱们可以调HTTP接口啊!!比如它自带的一些动作,花样百出,大部分满足你想要干的事。

Urule介绍

由于工作需要,我参考了许多优秀JAVA实现的开源规则引擎框架,例如Drools等,但是在茫茫人海中我发现了一个可视化配置基于RETE算法的规则引擎,它的名字叫Urule,下面摘选自Urule官方Wiki:

URule是一款基于RETE算法纯Java的规则引擎产品。在URule当中提供了向导式规则集、脚本式规则集、决策表、
交叉决策表(PRO版)、决策树、评分卡及决策流共七种类型的规则定义方式,配合基于WEB的设计器,可快速实现
规则的定义、维护与发布。

Github项目地址
官方Wiki地址

使用场景

有一天,小叶同学在撸着代码,产品MM找到小叶同学,评审一个每日登陆活动的需求,需求大概是这样的:

 -5级以下用户登陆送5元红包
 -5级以上用户登陆送10元红包

小叶同学一看,So easy!两行代码敲下去就提测上线了:

//登陆事件触发代码
if (user.getLevel() <= 5) {
    //发放5元红包
    rewardGenerator.send("5元红包");
} else {
   //发放10元红包
    rewardGenerator.send("10元红包");
}

过了一天,运营GG找产品MM反馈说活动太火爆,被褥羊毛太严重了,要修改一下规则:

-用户必须实名认证
-5级以下用户登陆送3元红包
-5级以上用户登陆送7元红包

小叶同学沉着脸改完逻辑:

//没有实名认证不给奖励!!!
if (!user.isRealNameAuth()) {
    return;
}
if (user.getLevel() <= 5) {
    //发放3元红包
    rewardGenerator.send("3元红包");
} else {
   //发放7元红包
    rewardGenerator.send("7元红包");
}

再过了一周,运营GG找到产品MM说玩法太单一,没有达到活动效果,要增加活动的可玩性,需求又改成了这样:

 -用户必须实名认证
-5级以下用户
       -登陆送3元红包;
       -每日分享文章到朋友圈送1次抽奖机会;
       -论坛回帖15字以上超过10次赠送50元满减券;
-5级以上用户
       -登录送7元红包;
       -每日分享文章到朋友圈送2次抽奖机会;
       -论坛签到送1次抽奖机会;
       -论坛回帖1字以上赠送100元满减券;

刚拿到PRD的小叶同学的表情是这样的(当时心想的应该是那么多if else怎么嵌套):

【Urule介绍】开源可视化规则引擎

于是小叶同学开始百度有没有运营GG能能够自己配置生成相关规则的一些框架什么的,还真的有!它大概长这样:

【Urule介绍】开源可视化规则引擎

(决策集形态)

也可以长这样:

【Urule介绍】开源可视化规则引擎

(决策树形态)

甚至可以这样玩(用来算分数简直不要太爽):

【Urule介绍】开源可视化规则引擎

(评分卡形态)

上面三种形态只是Urule的冰山一角,重要的是可视化配置有木有!比写死代码舒服多了!解放程序员双手的利器(当然还是得看场合和需求滴)

于是小叶同学二话不说把Urule整合进了自己的项目中,按照需求配置了一个一条规则树:

【Urule介绍】开源可视化规则引擎

Urule感染到小叶同学的是,里面的动作全部可以自定义,比如上图,业务场景是用户登录、分享等事件MQ触发规则校验,但是有一部分数据可能不从MQ传递过来,那么想要拿到用户的一些特殊数据,咱们可以调HTTP接口啊!!比如它自带的一些动作,花样百出,大部分满足你想要干的事。

【Urule介绍】开源可视化规则引擎

事成之后,小叶同学赶紧把Urule撸上线,那么以后的规则就由运营GG自己配置就好啦

【Urule介绍】开源可视化规则引擎

今天的文章【Urule介绍】开源可视化规则引擎分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/17217.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注