首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 云计算 >

Esper学习之4:Context

2013-10-08 
Esper学习之四:Context上周末打球实在太累了,就没来得及更新,只是列了个提纲做做准备,发现Context还是有很

Esper学习之四:Context

       上周末打球实在太累了,就没来得及更新,只是列了个提纲做做准备,发现Context还是有很多内容的。结果也花了不少时间才写完,所以这篇需要各位慢慢消化,并且最好多写几个例子加深理解。

       如果有不了解Esper的同学,建议先看看《Esper学习之一:Esper介绍 》《Esper学习之二:事件类型》《Esper学习之三:进程模型》这三篇基础文章,这样会有助于Esper的学习。

       Context是Esper里一个很有意思的概念,要是理解为上下文,我觉得有点不妥。以我的理解,Context就像一个框,把不同的事件按照框的规则框起来,并且有可能有多个框,而框与框之间不会互相影响。不知道各位在看完这篇文章后是否认同我的观点,我愿洗耳恭听。


1.Context基本语法

语法结构如下

如上所示,name表示context的名称,这个是不会变的。id是每个context的唯一标识,从0开始。key1和keyN表示context定义时所选择的属性的值,1和N表示属性的位置。例如:

label指明进入的事件所处的group是什么。完整例子如下:

context OverLapping select * from User output snapshot every 2 minute // 每两分钟输出OverLapping的事件

关于output表达式,后面也会有详解。


       以上的内容算是包含了Context的所有方面,可能还有些细节需要各位自己去研读他的手册,并且多加练习。Esper的内容之多以至于我说了很多次“后面会专门讲解”,不过也确实是因为内容复杂,所以不得不先跳过这些。在学习到之后的内容以后,再回过头来理解Context可能会有另一番效果。


PS:为了完成这篇文章,我又重新细读了手册,调试了好几个例子,花了三个晚上才终于搞定。

热点排行