drools規則語言指南(四)規則屬性

DRL中的規則屬性

以下圖所示,規則的全部屬性都在裏面了
image
規則的屬性是對規則行爲的額外聲明。在DRL文件中,在條件的上面定義屬性,多個屬性分行表示:html

rule "rule_name"
    // Attribute
    // Attribute
    when
        // Conditions
    then
        // Actions
end

屬性對照表:

Attribute Value
salience 規則執行的優先級,正整數,數值越大優先級越高,例:salience 10
enabled 規則是否可用,true/false,例:enabled true
date-effective 規則生效的時間,在這個時間以後的,規則才能夠生效,例:date-effective "4-Sep-2018"
date-expires 規則失效時間,在這個時間以後規則就失效,例:date-expires "4-Oct-2018"
no-loop 規則不會被再次激活,true/false,例:no-loop true
agenda-group agenda組 ,這個至關於對規則進行了分組,只有被選定的組才能激活規則,例:agenda-group "GroupName"
activation-group activation組,在同一個組中的規則,當其中一個被激活以後其餘的規則就不會被激活,例:activation-group "GroupName"
duration 規則持續時間,毫秒值,在指定的毫秒值以後規則才能被激活
timer 定時調度規則,int (interval) or cron,例: timer ( cron: 0/15 ? ) (every 15 minutes)
calendar 基於Quartz日期的定時調度規則,例: calendars " 0-7,18-23 ? " (exclude non-business hours)
auto-focus true/false,僅適用於有agenda group的規則,爲true時當某個agenda group中的規則被激活以後,那麼這個group就會自動得到焦點,例:auto-focus true
lock-on-active true/false,僅適用於帶有rule flow group 或者agenda group的規則,爲true時,在下一次rule flow group變爲可激活或者agenda group得到了焦點,這個規則不能被激活直到這個group失去焦點。這是no-loop的加強版本,任何的地方對fact的修改都不會再次觸發規則。lock-on-active true
ruleflow-group 在規則流中,只有指定得ruleflow-group才能被激活,例:ruleflow-group "GroupName"
dialect 使用JAVA仍是MVEL做爲規則的語言,例:dialect "JAVA"

更多參考segmentfault

相關文章
相關標籤/搜索