事件模式概述
对于一个模式,当一个或多个事件满足了该模式的定义时,就会触发模式匹配。模式表达式由“模式原子”和"模式算子"组成。
1.模式原子是构建模式的基本单元。
2.模式算子控制表达式的生命周期,将模式原子组合到一起。
模式原子包括三种:
1) 过滤表达式:指定要查找的事件。
2)基于时间的事件观察者:指定时间间隔或者时刻。
3)自定义的插件观察者:用来观察应用中指定的事件。
模式算子有4种:
1) 控制子表达式重复性的算子:every, every-distinct, [num], until
2)逻辑算子:and, or, not
3)操作事件顺序的算子:-> (followed-by)
4)控制子表达式生命周期的算子:timer:within, timer:withinmax, while-表达式。自定义插件也可以被使用。
当需要嵌套模式表达式时,可以使用圆括号()以任意深度嵌套表达式。
模式匹配是用状态机来实现的,它基于到达的事件和不断前进的时间。一个单一的事件或者向前推进的时间都可以引起模式状态中多个部分的响应。