public class Repeatedly extends Trigger
Trigger
that fires according to its subtrigger forever.
For example, to fire after the end of the window, and every time late data arrives:
Repeatedly.forever(AfterWatermark.pastEndOfWindow());
Repeatedly.forever(someTrigger)
behaves like an infinite AfterEach.inOrder(someTrigger, someTrigger, someTrigger, ...)
.
You can use Trigger.orFinally(OnceTrigger)
to let another trigger interrupt the repetition.
Trigger.OnceTrigger
subTriggers
Modifier and Type | Method and Description |
---|---|
static Repeatedly |
forever(Trigger repeated)
Create a composite trigger that repeatedly executes the trigger
repeated , firing each
time it fires and ignoring any indications to finish. |
protected Trigger |
getContinuationTrigger(java.util.List<Trigger> continuationTriggers)
Subclasses should override this to return the
Trigger.getContinuationTrigger() of this Trigger . |
Trigger |
getRepeatedTrigger() |
Instant |
getWatermarkThatGuaranteesFiring(BoundedWindow window)
For internal use only; no backwards-compatibility guarantees.
|
boolean |
mayFinish()
For internal use only; no backwards-compatibility guarantees.
|
java.lang.String |
toString() |
equals, getContinuationTrigger, hashCode, isCompatible, orFinally, subTriggers
public static Repeatedly forever(Trigger repeated)
repeated
, firing each
time it fires and ignoring any indications to finish.
Unless used with Trigger.orFinally(org.apache.beam.sdk.transforms.windowing.Trigger.OnceTrigger)
the composite trigger will never finish.
repeated
- the trigger to execute repeatedly.public Trigger getRepeatedTrigger()
public Instant getWatermarkThatGuaranteesFiring(BoundedWindow window)
Trigger
Returns a bound in event time by which this trigger would have fired at least once for a given window had there been input data.
For triggers that do not fire based on the watermark advancing, returns BoundedWindow.TIMESTAMP_MAX_VALUE
.
This estimate may be used, for example, to determine that there are no elements in a side-input window, which causes the default value to be used instead.
getWatermarkThatGuaranteesFiring
in class Trigger
public boolean mayFinish()
Trigger
Indicates whether this trigger may "finish". A top level trigger that finishes can cause data loss, so is rejected by GroupByKey validation.
protected Trigger getContinuationTrigger(java.util.List<Trigger> continuationTriggers)
Trigger
Trigger.getContinuationTrigger()
of this Trigger
. For convenience, this is provided the continuation trigger of each of the
sub-triggers in the same order as Trigger.subTriggers
.getContinuationTrigger
in class Trigger
continuationTriggers
- null
if Trigger.subTriggers
is null
, otherwise
contains the result of Trigger.getContinuationTrigger()
on each of the subTriggers in the
same order.