85.3. 事件的元数据标签
决策引擎将以下元数据标签用于插入到决策引擎工作内存中的事件。您可以根据需要更改 Java 类或 DRL 规则文件中的默认元数据标签值。
本节中的示例参考 VoiceCall
类假设示例应用程序域模型包括以下类详情:
示例电信域模型中的 VoiceCall 事实类
public class VoiceCall { private String originNumber; private String destinationNumber; private Date callDateTime; private long callDuration; // in milliseconds // Constructors, getters, and setters }
- @role
此标签决定,给定事实类型是作为常规事实处理,还是在复杂事件处理期间在决策引擎中的事件进行处理。
default 参数:
fact
支持的参数:
事实
、事件
@role( fact | event )
示例: Declare VoiceCall 作为事件类型
declare VoiceCall @role( event ) end
- @timestamp
此标签会自动分配给决策引擎中的每个事件。默认情况下,会话时钟提供的时间,并在事件插入决策引擎的工作内存中时分配给事件。您可以指定自定义时间戳属性,而不是会话时钟添加的默认时间戳。
default 参数:决策引擎会话时钟添加的时间
支持的参数: Session clock time 或 custom time stamp 属性
@timestamp( <attributeName> )
示例: Declare VoiceCall timestamp 属性
declare VoiceCall @role( event ) @timestamp( callDateTime ) end
- @duration
此标签决定决策引擎中事件的持续时间。事件可以是基于间隔的事件或时间点事件。基于间隔的事件的时间,并在决策引擎的工作内存中保留一段时间,直到它们的持续时间可用为止。点内事件没有持续时间,基本上是基于 interval 的事件,且持续为零。默认情况下,决策引擎中的每个事件都会有零持续时间。您可以指定自定义持续时间属性,而不是默认值。
默认参数:Null(零)
支持的参数: 自定义持续时间属性
@duration( <attributeName> )
示例: Declare VoiceCall duration 属性
declare VoiceCall @role( event ) @timestamp( callDateTime ) @duration( callDuration ) end
- @expires
此标签决定事件在决策引擎工作内存过期前的时间持续时间。默认情况下,事件过期,事件不再匹配并激活任何当前规则。您可以定义事件应过期的时间。此标签定义还覆盖从 KIE 基础中的时序限制和滑动窗口计算的隐式到期偏移。只有在决策引擎以流模式运行时,该标签才可用。
默认参数:Null(事件后的事件过期,不再匹配并激活规则)
支持的参数:自定义
timeOffset
属性,格式为[#d][#h][#m][#s][[ms]]
@expires( <timeOffset> )
示例:对 VoiceCall 事件进行禁止过期偏移
declare VoiceCall @role( event ) @timestamp( callDateTime ) @duration( callDuration ) @expires( 1h35m ) end