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. Codeforces 719E (线段树教做人系列) 线段树维护矩阵

    题面简洁明了,一看就懂 做了这个题之后,才知道怎么用线段树维护递推式.递推式的递推过程可以看作两个矩阵相乘,假设矩阵A是初始值矩阵,矩阵B是变换矩阵,求第n项相当于把矩阵B乘了n - 1次. 那么我们 ...

  2. 获取iframe自适应后的宽高

    1.同域 一:引入jquery <script type="text/javascript" src="../jquery.min.js">< ...

  3. Bulma 源码结构

    源码基于 Bulma 0.4.0 版本. 一.入口文件 bulma.sass bulma.sass 是 Bulma 使用 SASS 编译的入口文件. sass bulma.sass css/bulma ...

  4. 《Effective Java》第10章 发并

    第66条:同步访问共享的可变数据 Java语言规范保证读或者写一个变量是原子的(atomic ) ,除非这个变量的类型为long或者double. [java中long和double类型操作的非原子性 ...

  5. java打成jar包后,class,getResource()出现null指针异常

    1.SqlHelper.java有包路径没?如果有,是不是类似于com.db.jdbc? 不管怎么办,你SqlHelper.class.getResourceAsStream("/mysql ...

  6. Java的post(HTTPS)请求-----接口测试

    package com.ju.util; import java.io.BufferedReader; import java.io.IOException; import java.io.Input ...

  7. metasploit 读书笔记-EXPLOITATION

    一、渗透攻击基础 1.常用命令 show exploits 显示Meta框架中所有可用的渗透攻击模块。 show options 显示模块所需要的各种参数 back 返回Meta的上一个状态 sear ...

  8. mac的idea不能编辑问题

    在安装的时候,因为在选择插件的时候,把IDEAVim这个玩意儿选上了.所以,编辑模式就跟命令行里面的Vim一样.输入时,需要先输入i, 进入insert模式下,然后才可以编辑.彻底解决办法就是进入Pr ...

  9. 高级工程师->架构师

    1. 分解等级 技术人员典型的发展路径基本上都是下面的这个模式: 1) 0 ~1年:菜鸟,需要别人手把手来教 2)1 ~ 3年:初级,需要别人带你做 3)3 ~ 5年:高级,能独当一面,可以带初级技术 ...

  10. STL_ALGORITHM_H

    sort_unique_copy /////////////////////////////////////////////////////////// // Copyright (c) 2013, ...