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.OnceTriggersubTriggers| 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, subTriggerspublic 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)
TriggerReturns 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 Triggerpublic boolean mayFinish()
TriggerIndicates 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)
TriggerTrigger.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 TriggercontinuationTriggers - null if Trigger.subTriggers is null, otherwise
contains the result of Trigger.getContinuationTrigger() on each of the subTriggers in the
same order.