zoukankan      html  css  js  c++  java
  • esper(1)-窗口概述

    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

  • 相关阅读:
    在.net中过滤敏感字符
    const和readonly的联系和区别
    新闻内容页分页的简单做法
    jmail邮件发送问题
    nvarchar与varchar的区别
    C#中"is" vs "as"
    在C#中,string 类型可与SQL SERVER中的int 类型作比较
    做网站常用代码集锦 (转)
    做网站常用代码集锦 (转)
    ADO 数据类型转换表 oledbtype sqldbtype (二)
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/10511944.html
Copyright © 2011-2022 走看看