窗口触发的条件是: 1、watermark时间 >= window_end_time 2、在[window_start_time,window_end_time)中有数据存在
但是在代码中我们可以看到如果
if (window.maxTimestamp() <= ctx.getCurrentWatermark()) {
// if the watermark is already past the window fire immediately
return TriggerResult.FIRE;
} else {
ctx.registerEventTimeTimer(window.maxTimestamp());
return TriggerResult.CONTINUE;
}
是不是可以这么理解。如果watermark一直比window 的end_Time-1 小,那么到了窗口的endTime-1 ,窗口就会自动被触发
非常感谢大牛们的解答
