Drools的基本使用和原理

2021-09-20 06:37:24 字數 2890 閱讀 4086

// load up the knowledge base

knowledgebase kbase =

readknowledgebase()

; statefulknowledgesession ksession = kbase.

newstatefulknowledgesession()

;

itemcity item1 =

newitemcity()

; item1.

setpurchasecity

(city.pune)

; item1.

settypeofitem

(type.medicines)

; item1.

setsellprice

(new

bigdecimal(10

)); ksession.

insert

(item1)

;

itemcity item2 =

newitemcity()

; item2.

setpurchasecity

(city.pune)

; item2.

settypeofitem

(type.groceries)

; item2.

setsellprice

(new

bigdecimal(10

)); ksession.

insert

(item2)

;

itemcity item3 =

newitemcity()

; item3.

setpurchasecity

(city.nagpur)

; item3.

settypeofitem

(type.medicines)

; item3.

setsellprice

(new

bigdecimal(10

)); ksession.

insert

(item3)

;

itemcity item4 =

newitemcity()

; item4.

setpurchasecity

(city.nagpur)

; item4.

settypeofitem

(type.groceries)

; item4.

setsellprice

(new

bigdecimal(10

));

ksession.

insert

(item4)

;

ksession.

fireallrules()

;

system.out.

println

(item1.

getpurchasecity()

.tostring()

+" "

+ item1.

getlocaltax()

.intvalue()

);system.out.

println

(item2.

getpurchasecity()

.tostring()

+" "

+ item2.

getlocaltax()

.intvalue()

);system.out.

println

(item3.

getpurchasecity()

.tostring()

+" "

+ item3.

getlocaltax()

.intvalue()

);system.out.

println

(item4.

getpurchasecity()

.tostring()

+" "

主要思想

其核心思想是用分離的匹配項構造匹配網路,同時快取中間結果。以空間換時間。規則編譯(rule compilation)和執行時執行(runtime execution)。

rete網路的示意圖如下

drools 規則引擎將業務規則轉換成執行樹

規則引擎預設不會在規則評估時立即執行業務規則,除非我們強制指定。當我們到達乙個事實(fact)與規則相匹配的節點時,規則評估會將規則操作與觸發資料新增到乙個叫作議程(agenda)的元件中,如果同乙個事實(fact)與多個規則相匹配,就認為這些規則是衝突的,議程(agenda)使用衝突解決策略(conflict resolution strategy)管理這些衝突規則的執行順序。整個生命週期中,規則評估與規則執行之間有著明確的分割。規則操作的執行可能會導致事實(fact)的更新,從而與其它規則相匹配,導致它們的觸發,稱之為前向鏈結。

cookie原理和基本使用

在 中,http請求是無狀態的。也就是說即使第一次和伺服器連線後並且登入成功後,第二次請求伺服器依然不能知道當前請求是哪個使用者。cookie的出現就是為了解決這個問題,第一次登入後伺服器返回一些資料 cookie 給瀏覽器,然後瀏覽器儲存在本地,當該使用者傳送第二次請求的時候,就會自動的把上次請求...

規則引擎 Drools的使用

專案遇到下步執行動作決策的業務,場景不同於常見的規則性業務,但也可以應用於規則引擎之中,剝離掉 中大量的邏輯判斷 同時加快決策結果的輸出。可見規則的定義是比較泛的,技術元件的應用也不是一成不變的。drools有專門的規則語法drl檔案,drools會記載drl檔案中編寫好的規則,供專案呼叫 因為一般...

Mysql基本使用原理和索引型別

1.建立使用者 建立使用者的三種方法 1 insert into mysql.user host,user,password values localhost hadoop password hadoop 2 create user hadoop localhost identified by ha...