以下圖所示,規則的全部屬性都在裏面了
規則的屬性是對規則行爲的額外聲明。在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