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