数据流触发器 AfterProcessingTime.pastFirstElementInPane() 如何工作?

How does dataflow trigger AfterProcessingTime.pastFirstElementInPane() work?

在 Dataflow 流媒体世界中。

我的理解是:

Window.into(FixedWindows.of(Duration.standardHours(1)))
  .triggering(AfterProcessingTime.pastFirstElementInPane()
      .plusDelayOf(Duration.standardMinutes(15))

是固定的window一个小时,触发器在看到第一个元素后等待或批处理元素。

但是当我说:

Window.into(FixedWindows.of(Duration.standardHours(1)))
  .triggering(AfterProcessingTime.pastFirstElementInPane()

它是从第一次看到第一个元素时每次都触发还是隐式地批处理元素?因为触发每个元素会使系统过载。

对于这两个触发器,window 将被触发一次,所有剩余的元素将被丢弃。可以使用Repeatedly.forever(...)多次触发

关于您的具体问题,如果元素大约同时到达,则会发生少量批处理。

假设你的意思是下面的,那么是的,第二个会更频繁地触发,并且可能会使系统过载。

Repeatedly.forever(AfterProcessingTime.pastFirstElementInPane()
    .plusDelayOf(Duration.standardMinutes(15)))

对比

Repeatedly.forever(AfterProcessingTime.pastFirstElementInPane())