001package top.cenze.rulepolicy.frame.rule; 002 003import com.fasterxml.jackson.annotation.JsonInclude; 004import lombok.Data; 005 006@Data 007@JsonInclude(JsonInclude.Include.NON_NULL) 008public class RuleHeaderAttributes { 009 /** 010 * 指定当前规则是否启用(默认为true) 011 * 如果设置的值为false则当前规则无论是否匹配成功都不会触发 012 * enabled false //指定当前规则不可用,当前规则无论是否匹配成功都不会执行 013 */ 014 private Boolean enabled; 015 016 /** 017 * 指定当前规则使用的语言类型,取值为java和mvel,默认值为java 018 * dialect java 019 */ 020 private String dialect; 021 022 /** 023 * 指定规则的执行优先级,数值越大越优先执行 024 * 如果不设置,则执行顺序为由上到下 025 * salience 9 026 */ 027 private Integer salience; 028 029 /** 030 * 是否不允许多次循环执行(默认为false,为true则只允许被执行一次) 031 * 控制当前的规则只会被执行一次,因为一个规则的重复执行不一定是本身触发的,也可能是其他规则触发的 032 * 是no-loop的加强版 033 * lock-on-active true 034 */ 035 private Boolean lockOnActive; 036 037 /** 038 * 激活分组 039 * 具有相同分组名称的规则只能有一个规则被触发 040 * activation-group "mygroup" 041 */ 042 private String activationGroup; 043 044 /** 045 * 议程分组 046 * 属于另一种可控的规则执行方式 047 * 用户可以通过设置agenda-group来控制规则的执行,只有获取焦点的组中的规则才会被触发 048 * agenda-group "myagendagroup_1" 049 */ 050 private String agendaGroup; 051 052 /** 053 * 自动获取焦点(默认为false) 054 * 一般结合agenda-group属性使用,当一个议程分组未获取焦点时,可以设置auto-focus属性来控制 055 * agenda-group "myagendagroup_2" 056 * auto-focus true //自动获取焦点 057 */ 058 private Boolean autoFocus; 059 060 /** 061 * 规则定时(单位:毫秒) 062 * duration 3000 // 3秒后执行规则 063 */ 064 private Integer duration; 065 066 /** 067 * 通过定时器的方式指定规则执行的时间 068 * - 方式一:timer (int: ?) 069 * timer (5s 2s) //含义:5秒后触发,然后每隔2秒触发一次 070 * 此种方式遵循java.util.Timer对象的使用方式,第一个参数表示几秒后执行,第二个参数表示每隔几秒执行一次,第二个参数为可选。 071 * - 方式二:timer(cron: ) 072 * timer (cron:0/1 * * * * ?) //含义:每隔1秒触发一次 073 * 此种方式使用标准的unix cron表达式的使用方式来定义规则执行的时间。 074 */ 075 private String timer; 076 077 /** 078 * 指定规则的生效时间 079 * 即只有当前系统时间大于等于设置的时间或者日期规则才有可能触发。默认日期格式为:dd-MMM-yyyy 080 * 用户也可以自定义日期格式 081 * date-effective "2020-10-01 10:00" 082 */ 083 private String dateEffective; 084 085 /** 086 * 指定规则的失效时间 087 * 即只有当前系统时间小于设置的时间或者日期规则才有可能触发。默认日期格式为:dd-MMM-yyyy 088 * 用户也可以自定义日期格式 089 * date-expires "2019-10-01 10:00" 090 */ 091 private String dateExpires; 092}