Time Window:

Length Window:

Time Batch Window:

带batch的是所有的都执行完后,在触发UpdateListener,如下边例子:

public class AppleListener implements UpdateListener {

    public void update(EventBean[] newEvents, EventBean[] oldEvents) {
if (newEvents != null) {
Double avg = (Double)newEvents[0].get("avg(price)");
System.out.println("Apple's average price is " + avg);
}
} }
String epl = "select avg(price) from " + product + ".win:length_batch(3)";
...
runtime.sendEvent(new Apple(1));
runtime.sendEvent(new Apple(2));
runtime.sendEvent(new Apple(3));
//runtime.sendEvent(new Apple(4));
//runtime.sendEvent(new Apple(5));
//runtime.sendEvent(new Apple(6));
  • 当为length(3)时,每次执行runtime.sendEvent都会调用UpdateListener。
  • 当为length_batch(3)时,直到最后的runtime.sendEvent(apple3);执行完毕后,才调用UpdateListener。
  • 当只有runtime.sendEvent(new Apple(1));时,

如果是win:length(3),输出:Apple's average price is 1.0

如果是win:length_batch(3),啥都不输出。

  • 当有runtime.sendEvent(new Apple(1));和runtime.sendEvent(new Apple(2));时,

    如果是win:length(3),输出:

      Apple's average price is 1.0
              Apple's average price is 1.5

    如果是win:length_batch(3),啥都不输出。

  • 当有 runtime.sendEvent(new Apple(1));和runtime.sendEvent(new Apple(2));和runtime.sendEvent(new Apple(3));时,

    如果是win:length(3),输出:

      Apple's average price is 1.0
      Apple's average price is 1.5
      Apple's average price is 2.0

     如果是win:length_batch(3),输出:Apple's average price is 2.0

  • 当sendEvent 4个时,

    如果是win:length(3),输出:

      Apple's average price is 1.0
      Apple's average price is 1.5
      Apple's average price is 2.0
      Apple's average price is 3.0

     如果是win:length_batch(3),输出:Apple's average price is 2.0

  • 当sendEvent 5个时,

    如果是win:length(3),输出:

      Apple's average price is 1.0
      Apple's average price is 1.5
      Apple's average price is 2.0
      Apple's average price is 3.0
      Apple's average price is 4.0

     如果是win:length_batch(3),输出:

      Apple's average price is 2.0

  • 当sendEvent 6个时,

    如果是win:length(3),输出:

      Apple's average price is 1.0
      Apple's average price is 1.5
      Apple's average price is 2.0
      Apple's average price is 3.0
      Apple's average price is 4.0
      Apple's average price is 5.0

     如果是win:length_batch(3),输出:

      Apple's average price is 2.0
      Apple's average price is 5.0

esper(1)-窗口概述的更多相关文章

  1. 复杂事件处理引擎—Esper工作原理

    前面对Esper进行了概述,包括事件类型.事件流.事件窗口以及EPL相关内容.当然,上面的知识,对于简单的Esper开发,应该已经足够,能够根据自己业务需求,做出一个满足需要的Esper应用.但是,真 ...

  2. VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口)

    上一节中鸡啄米讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述       分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或 ...

  3. VS2010 MFC中 窗口分割的实现

    分割窗口概述 分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或者是同一类型的视图,或者是不同类型的视图. MFC分割窗口的方式有两种,动态分割和静态分割. 动态分割窗口通 ...

  4. VS2010-MFC(文档、视图和框架:分割窗口)

    转自:http://www.jizhuomi.com/software/226.html 上一节讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述      ...

  5. Flink(八)【Flink的窗口机制】

    目录 Flink的窗口机制 1.窗口概述 2.窗口分类 基于时间的窗口 滚动窗口(Tumbling Windows) 滑动窗口(Sliding Windows) 会话窗口(Session Window ...

  6. LoadRunner培训初级教程

    一 LoadRunner简介 1.1 Loadrunner介绍 LoadRunner 是 HP Mercury Interactive 用来测试应用程序性能的工具  LoadRunner 通过模拟一个 ...

  7. Mongodb Manual阅读笔记:CH4 管理

    4 管理 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔 ...

  8. LoadRunner:VuGen开发脚本步骤(二)

    一.介绍 Loadrunner的场景能够描述在测试活动中发生的各种事件.一个场景包括一个运行虚拟用 户活动的Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组 二 ...

  9. 编码 - 设置 win10 下 cmd 编码格式

    概述 cmd 编码格式修改 背景 之前尝试过修改 gitbash(mingw) 的 Character Set 这次尝试修改一下 cmd 的编码格式 准备 os win10.1903 1. 查看 当前 ...

随机推荐

  1. [poj2653]Pick-up sticks

    题目大意:给定一系列线段,以及放在平面上的顺序,给出没有被其他覆盖的线段. 解题关键:线段相交的判断. 满足两个条件即可:快速排斥实验.跨立实验. #include<cstdio> #in ...

  2. iOS 聊天界面

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  3. Python 黑客 --- 001 UNIX口令破解机

    Python 黑客 实战:UNIX口令破解机 使用的系统:Ubuntu 14.04 LTS Python语言版本:Python 2.7.10 V crypt 库是Python内置的库.在UNIX系统使 ...

  4. R: 判别分析

    判别与聚类的比较: 聚类分析和判别分析有相似的作用,都是起到分类的作用. 判别分析是已知分类然后总结出判别规则,是一种有指导的学习: 聚类分析则是有了一批样本,不知道它们的分类,甚至连分成几类也不知道 ...

  5. ZROI2018提高day6t1

    传送门 分析 我们发现这个四元组可以分解成一个逆序对拼上一个顺序对,这个线段树搞搞然后乘一下就可以求出来了,但是我们发现可能有(a,b)为逆序对且(b,c)为顺序对的情况,所以要进行容斥,我们只需要枚 ...

  6. hdu6331 Problem M. Walking Plan

    传送门 题目大意 给你一个n点m条边的有向图,q次询问,给定s,t,k,求由s到t至少经过k条边的最短路. 分析 我们设dp[i][j][k]为从i到j至少经过k条边的最短路,sp[i][j]意为从i ...

  7. cakephp数据库配置

  8. Hibernate 处理查询 in 字句

    from : http://blog.csdn.net/wodestudy/article/details/38200421 在处理hibernate的实体查询,一般可以采用多种方式处理复杂的查询,比 ...

  9. python 常用的一些库

    AllPairs 2.0.1Appium-Python-Client 0.24asn1crypto 0.24.0attrs 17.4.0AutoItLibrary 1.1bcrypt 3.1.4bea ...

  10. C#之WinForm界面分辨率问题

    在做上一个C#小工具的时候,当时为了处理界面最大化,分辨率问题,只是简单的用各种···Panle控价简单随意的处理控件的大小位置,字体什么的就随缘了(貌似有点不负责任啊,嘿嘿~). 所以在开始第二个C ...