Drools之規則屬性


一、屬性no-loop

默認值:false
類型:Boolean
屬性說明:防止死循環,當規則通過update之類的函數修改了Fact對象時,可能使規則再次被激活,從而導致死循環。將no-loop設置為true的目的是避免當前規則then部分被修改后的事實對象再次被激活,從而防止死循環的發生。

二、屬性ruleflow-group

默認值:N/A
類型:String
屬性說明:ruleflow-group分為rule、flow和group3個部分,分別代表規則、流程、分組,即常說的規則流。

三、屬性lock-on-active

默認值:false
類型:Boolean
屬性說明:lock-on-active是指”鎖定活躍”。既然它是規則體的屬性,那一定是鎖定規則的,而且是鎖定活躍的規則。簡單地說,當規則體設置該屬性為true時,則當前只會被觸發一次。當ruleflow-group或agenda-group再次被激活時,即使在規則體中設置lock-on-active為true,該規則體也不能再次被激活,即無論如何更新規則事實對象,當前規則也只能被觸發一次。這是no-loop的升級版,一個更強大的解決死循環的屬性。

四、屬性salience

默認值:0
類型:integer
屬性說明:規則體被執行的順序,每一個規則都有一個默認的執行順序,如果不設置salience屬性,規則體的執行順序為由上到下。salience值可以是一個整數,但也可以是一個負數,其值越大,執行順序越高,排名越靠前。Drools還支持動態配置優先級。

五、屬性enabled

默認值:true
類型:Boolean
屬性說明:指規則是否可以被執行,若規則體設置為enabled false,則規則體將視為永久不被激活。

六、屬性dialect

可能值:Java或Mvel。
類型:String。
屬性說明:用來定義規則中要使用的語言類型,支持Mvel和Java兩種類型語言,默認情況下由包指定的。Java語言在特殊情況下會用到,如Ac-cumulate、引用Java中的語法等。

七、屬性date-effective

默認值:N/A
類型:String、日期、時間。
屬性說明:只有當前系統時間大於等於設置的時間或日期,規則才會被激活。在沒有設置該屬性的情況下,規則體不受時間限制。date-effective的值是一個日期型的字符串,默認情況下,date-effective可接受的日期格式為”dd-MM-yyyy”。

八、屬性date-expires

默認值:N/A
類型:String、日期、時間。
屬性說明:date-expires屬性與date-effective屬性是相反的,即只有當前系統時間小於設置的時間或日期,規則才會被激活。在沒有設置該屬性的情況下,規則體不受時間限制。date-expires的值為一個日期型的字符串,默認情況下,date-expires可接受的日期格式為”dd-MMM-yyyy”。

九、屬性duration

默認值:無。
類型:long。
屬性說明:表示定時器,如果當前規則LHS部分為true,那么規則繼續執行;如果該屬性已經被棄用,那么通過新的屬性timer來控制。

十、屬性activation-group

默認值:N/A。
類型:String。
屬性說明:activation-group是指激活分組,通過字符串定義分組名稱,具有相同組名稱的規則體有且只有一個規則被激活,其他規則體的LHS部分仍然為true也不會被執行。該屬性受salience屬性影響,如當前規則文件中的其他規則未設計該屬性,則視為規則處於被激活狀態,並不受該屬性的影響。

十一、屬性agenda-group

默認值:無,需要通過Java設置。
類型:String。
屬性說明:agenda-group是議程分組,屬於另一種可控的規則執行方式,是指用戶可以通過配置agenda-group的參數來控制規則的執行,而且只有獲取焦點的規則才會被激活。

十二、屬性auto-focus

默認值:false。
類型:Boolean。
屬性說明:auto-focus屬性為自動獲取焦點,即當前規則是否被激活。如果一個規則被執行,那么認為auto-focus為true;如果單獨設置,一般結合agenda-group,當一個議程組未獲取焦點時,可以設置auto-focus來控制。

十三、屬性timer

默認值:無。
類型:與Java定時器參數類型相似。
屬性說明:timer屬性是一個定時器,用來控制規則的執行時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM