【Urule介紹】開源可視化規則引擎

Urule介紹

因爲工做須要,我參考了許多優秀JAVA實現的開源規則引擎框架,例如Drools等,可是在茫茫人海中我發現了一個可視化配置基於RETE算法的規則引擎,它的名字叫Urule,下面摘選自Urule官方Wiki:java

URule是一款基於RETE算法純Java的規則引擎產品。在URule當中提供了嚮導式規則集、腳本式規則集、決策表、
交叉決策表(PRO版)、決策樹、評分卡及決策流共七種類型的規則定義方式,配合基於WEB的設計器,可快速實現
規則的定義、維護與發佈。
複製代碼

Github項目地址
官方Wiki地址git

使用場景

有一天,小葉同窗在擼着代碼,產品MM找到小葉同窗,評審一個每日登錄活動的需求,需求大概是這樣的:程序員

-5級如下用戶登錄送5元紅包
 -5級以上用戶登錄送10元紅包
複製代碼

小葉同窗一看,So easy!兩行代碼敲下去就提測上線了:github

//登錄事件觸發代碼
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說玩法太單一,沒有達到活動效果,要增長活動的可玩性,需求又改爲了這樣:spa

-用戶必須實名認證
-5級如下用戶
       -登錄送3元紅包;
       -每日分享文章到朋友圈送1次抽獎機會;
       -論壇回帖15字以上超過10次贈送50元滿減券;
-5級以上用戶
       -登陸送7元紅包;
       -每日分享文章到朋友圈送2次抽獎機會;
       -論壇簽到送1次抽獎機會;
       -論壇回帖1字以上贈送100元滿減券;
複製代碼

剛拿到PRD的小葉同窗的表情是這樣的(當時心想的應該是那麼多if else怎麼嵌套):設計

因而小葉同窗開始百度有沒有運營GG能可以本身配置生成相關規則的一些框架什麼的,還真的有!它大概長這樣:code

(決策集形態)

也能夠長這樣:cdn

(決策樹形態)

甚至能夠這樣玩(用來算分數簡直不要太爽):

(評分卡形態)

上面三種形態只是Urule的冰山一角,重要的是可視化配置有木有!比寫死代碼舒服多了!解放程序員雙手的利器(固然仍是得看場合和需求滴)

因而小葉同窗二話不說把Urule整合進了本身的項目中,按照需求配置了一個一條規則樹:

Urule感染到小葉同窗的是,裏面的動做所有能夠自定義,好比上圖,業務場景是用戶登陸、分享等事件MQ觸發規則校驗,可是有一部分數據可能不從MQ傳遞過來,那麼想要拿到用戶的一些特殊數據,我們能夠調HTTP接口啊!!好比它自帶的一些動做,花樣百出,大部分知足你想要乾的事。

事成以後,小葉同窗趕忙把Urule擼上線,那麼之後的規則就由運營GG本身配置就好啦

相關文章
相關標籤/搜索