Documentation ¶
Overview ¶
Package trigger helps construct aggregation triggers. It defines the trigger API for Go SDK. It is experimental and subject to change.
Index ¶
- type AfterAllTrigger
- type AfterAnyTrigger
- type AfterCountTrigger
- type AfterEachTrigger
- type AfterEndOfWindowTrigger
- func (t *AfterEndOfWindowTrigger) Early() Trigger
- func (t *AfterEndOfWindowTrigger) EarlyFiring(early Trigger) *AfterEndOfWindowTrigger
- func (t *AfterEndOfWindowTrigger) Late() Trigger
- func (t *AfterEndOfWindowTrigger) LateFiring(late Trigger) *AfterEndOfWindowTrigger
- func (t *AfterEndOfWindowTrigger) String() string
- type AfterProcessingTimeTrigger
- func (t *AfterProcessingTimeTrigger) AlignedTo(period time.Duration, offset time.Time) *AfterProcessingTimeTrigger
- func (t *AfterProcessingTimeTrigger) PlusDelay(delay time.Duration) *AfterProcessingTimeTrigger
- func (t *AfterProcessingTimeTrigger) String() string
- func (t *AfterProcessingTimeTrigger) TimestampTransforms() []TimestampTransform
- type AfterSynchronizedProcessingTimeTrigger
- type AlignToTransform
- type AlwaysTrigger
- type DefaultTrigger
- type DelayTransform
- type NeverTrigger
- type OrFinallyTrigger
- type RepeatTrigger
- type TimestampTransform
- type Trigger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AfterAllTrigger ¶
type AfterAllTrigger struct {
// contains filtered or unexported fields
}
AfterAllTrigger fires after all subtriggers are fired.
func AfterAll ¶ added in v2.40.0
func AfterAll(triggers []Trigger) *AfterAllTrigger
AfterAll returns a new AfterAll trigger with subtriggers set to the passed argument.
func (*AfterAllTrigger) String ¶ added in v2.40.0
func (t *AfterAllTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
func (*AfterAllTrigger) SubTriggers ¶
func (t *AfterAllTrigger) SubTriggers() []Trigger
SubTriggers returns the component triggers.
type AfterAnyTrigger ¶
type AfterAnyTrigger struct {
// contains filtered or unexported fields
}
AfterAnyTrigger fires after any of sub-trigger fires.
func AfterAny ¶ added in v2.40.0
func AfterAny(triggers []Trigger) *AfterAnyTrigger
AfterAny returns a new AfterAny trigger with subtriggers set to passed argument.
func (*AfterAnyTrigger) String ¶ added in v2.40.0
func (t *AfterAnyTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
func (*AfterAnyTrigger) SubTriggers ¶
func (t *AfterAnyTrigger) SubTriggers() []Trigger
SubTriggers returns the component triggers.
type AfterCountTrigger ¶
type AfterCountTrigger struct {
// contains filtered or unexported fields
}
AfterCountTrigger fires after receiving elementCount elements.
func AfterCount ¶
func AfterCount(count int32) *AfterCountTrigger
AfterCount constructs a trigger that fires after at least `count` number of elements are processed.
func (*AfterCountTrigger) ElementCount ¶
func (t *AfterCountTrigger) ElementCount() int32
ElementCount returns the elementCount.
func (*AfterCountTrigger) String ¶ added in v2.40.0
func (t *AfterCountTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
type AfterEachTrigger ¶ added in v2.40.0
type AfterEachTrigger struct {
// contains filtered or unexported fields
}
AfterEachTrigger fires when each trigger is ready. Order of triggers matters.
func AfterEach ¶ added in v2.40.0
func AfterEach(subtriggers []Trigger) *AfterEachTrigger
AfterEach creates a new AfterEach trigger that fires after each trigger is ready. It follows the order of triggers passed in as arguments. Let's say if the second trigger gets ready but the first one is not ready then it won't be fired until first triggered is ready and fired.
func (*AfterEachTrigger) String ¶ added in v2.40.0
func (t *AfterEachTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
func (*AfterEachTrigger) Subtriggers ¶ added in v2.40.0
func (t *AfterEachTrigger) Subtriggers() []Trigger
Subtriggers returns the list of subtriggers for the current AfterEach trigger.
type AfterEndOfWindowTrigger ¶
type AfterEndOfWindowTrigger struct {
// contains filtered or unexported fields
}
AfterEndOfWindowTrigger provides option to set triggers for early and late firing.
func AfterEndOfWindow ¶
func AfterEndOfWindow() *AfterEndOfWindowTrigger
AfterEndOfWindow constructs a trigger that is configurable for early firing (before the end of window) and late firing (after the end of window).
Must call EarlyFiring or LateFiring method on this trigger at the time of setting.
func (*AfterEndOfWindowTrigger) Early ¶
func (t *AfterEndOfWindowTrigger) Early() Trigger
Early returns the Early Firing trigger for AfterEndOfWindowTrigger.
func (*AfterEndOfWindowTrigger) EarlyFiring ¶
func (t *AfterEndOfWindowTrigger) EarlyFiring(early Trigger) *AfterEndOfWindowTrigger
EarlyFiring configures an AfterEndOfWindow trigger with an implicitly repeated trigger that applies before the end of the window.
func (*AfterEndOfWindowTrigger) Late ¶
func (t *AfterEndOfWindowTrigger) Late() Trigger
Late returns the Late Firing trigger for AfterEndOfWindowTrigger.
func (*AfterEndOfWindowTrigger) LateFiring ¶
func (t *AfterEndOfWindowTrigger) LateFiring(late Trigger) *AfterEndOfWindowTrigger
LateFiring configures an AfterEndOfWindow trigger with an implicitly repeated trigger that applies after the end of the window.
Not setting a late firing trigger means elements are discarded.
func (*AfterEndOfWindowTrigger) String ¶ added in v2.40.0
func (t *AfterEndOfWindowTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
type AfterProcessingTimeTrigger ¶
type AfterProcessingTimeTrigger struct {
// contains filtered or unexported fields
}
AfterProcessingTimeTrigger fires after passage of times defined in timestampTransforms.
func AfterProcessingTime ¶
func AfterProcessingTime() *AfterProcessingTimeTrigger
AfterProcessingTime constructs a trigger that fires relative to when input first arrives.
Must be configured with calls to PlusDelay, or AlignedTo. May be configured with additional delay.
func (*AfterProcessingTimeTrigger) AlignedTo ¶
func (t *AfterProcessingTimeTrigger) AlignedTo(period time.Duration, offset time.Time) *AfterProcessingTimeTrigger
AlignedTo configures an AfterProcessingTime trigger to fire at the smallest multiple of period since the offset greater than the first element timestamp.
* Period may not be smaller than a millisecond. * Offset may be a zero time (time.Time{}).
func (*AfterProcessingTimeTrigger) PlusDelay ¶
func (t *AfterProcessingTimeTrigger) PlusDelay(delay time.Duration) *AfterProcessingTimeTrigger
PlusDelay configures an AfterProcessingTime trigger to fire after a specified delay, no smaller than a millisecond.
func (*AfterProcessingTimeTrigger) String ¶ added in v2.40.0
func (t *AfterProcessingTimeTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
func (*AfterProcessingTimeTrigger) TimestampTransforms ¶
func (t *AfterProcessingTimeTrigger) TimestampTransforms() []TimestampTransform
TimestampTransforms returns the timestampTransforms.
type AfterSynchronizedProcessingTimeTrigger ¶
type AfterSynchronizedProcessingTimeTrigger struct{}
AfterSynchronizedProcessingTimeTrigger fires when processing time synchronizes with arrival time.
func AfterSynchronizedProcessingTime ¶ added in v2.40.0
func AfterSynchronizedProcessingTime() *AfterSynchronizedProcessingTimeTrigger
AfterSynchronizedProcessingTime creates a new AfterSynchronizedProcessingTime trigger that fires when processing time synchronizes with arrival time.
func (*AfterSynchronizedProcessingTimeTrigger) String ¶ added in v2.40.0
func (t *AfterSynchronizedProcessingTimeTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
type AlignToTransform ¶
type AlignToTransform struct {
Period, Offset int64 // in milliseconds
}
AlignToTransform takes the timestamp and transforms it to the lowest multiple of the period starting from the offset.
Eg. A period of 20 with an offset of 45 would have alignments at 5,25,45,65 etc. Timestamps would be transformed as follows: 0 to 5 would be transformed to 5, 6 to 25 would be transformed to 25, 26 to 45 would be transformed to 45, and so on.
func (*AlignToTransform) String ¶ added in v2.40.0
func (t *AlignToTransform) String() string
String implements the Stringer interface and returns trigger details as a string.
type AlwaysTrigger ¶
type AlwaysTrigger struct{}
AlwaysTrigger fires immediately after receiving an element.
func Always ¶
func Always() *AlwaysTrigger
Always constructs a trigger that fires immediately whenever an element is received.
Equivalent to trigger.Repeat(trigger.AfterCount(1))
func (*AlwaysTrigger) String ¶ added in v2.40.0
func (t *AlwaysTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
type DefaultTrigger ¶
type DefaultTrigger struct{}
DefaultTrigger fires once after the end of window. Late Data is discarded.
func Default ¶
func Default() *DefaultTrigger
Default constructs a default trigger that fires once after the end of window. Late Data is discarded.
func (DefaultTrigger) String ¶ added in v2.40.0
func (t DefaultTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
type DelayTransform ¶
type DelayTransform struct {
Delay int64 // in milliseconds
}
DelayTransform takes the timestamp and adds the given delay to it.
func (*DelayTransform) String ¶ added in v2.40.0
func (t *DelayTransform) String() string
String implements the Stringer interface and returns trigger details as a string.
type NeverTrigger ¶
type NeverTrigger struct{}
NeverTrigger is never ready to fire.
func Never ¶ added in v2.40.0
func Never() *NeverTrigger
Never creates a Never Trigger that is never ready to fire. There will only be an ON_TIME output and a final output at window expiration.
func (*NeverTrigger) String ¶ added in v2.40.0
func (t *NeverTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
type OrFinallyTrigger ¶
type OrFinallyTrigger struct {
// contains filtered or unexported fields
}
OrFinallyTrigger is ready whenever either of its subtriggers are ready, but finishes output when the finally subtrigger fires.
func OrFinally ¶ added in v2.40.0
func OrFinally(main, finally Trigger) *OrFinallyTrigger
OrFinally trigger has main trigger which may fire repeatedly and the finally trigger. Output is produced when the finally trigger fires.
func (*OrFinallyTrigger) Finally ¶ added in v2.40.0
func (t *OrFinallyTrigger) Finally() Trigger
Finally returns the finally trigger of OrFinallyTrigger.
func (*OrFinallyTrigger) Main ¶ added in v2.40.0
func (t *OrFinallyTrigger) Main() Trigger
Main returns the main trigger of OrFinallyTrigger.
func (*OrFinallyTrigger) String ¶ added in v2.40.0
func (t *OrFinallyTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
type RepeatTrigger ¶
type RepeatTrigger struct {
// contains filtered or unexported fields
}
RepeatTrigger fires a sub-trigger repeatedly.
func Repeat ¶
func Repeat(t Trigger) *RepeatTrigger
Repeat constructs a trigger that fires a trigger repeatedly once the condition has been met.
Ex: trigger.Repeat(trigger.AfterCount(1)) is same as trigger.Always().
func (*RepeatTrigger) String ¶ added in v2.40.0
func (t *RepeatTrigger) String() string
String implements the Stringer interface and returns trigger details as a string.
func (*RepeatTrigger) SubTrigger ¶
func (t *RepeatTrigger) SubTrigger() Trigger
SubTrigger returns the trigger to be repeated.
type TimestampTransform ¶
type TimestampTransform interface {
// contains filtered or unexported methods
}
TimestampTransform describes how an after processing time trigger time is transformed to determine when to fire an aggregation.const The base timestamp is always the when the first element of the pane is received.
A series of these transforms will be applied in order emit at regular intervals.