58 lines
969 B
Go
58 lines
969 B
Go
package query
|
|
|
|
type TriggerSpec interface {
|
|
Kind() TriggerKind
|
|
}
|
|
type TriggerKind int
|
|
|
|
const (
|
|
AfterWatermark TriggerKind = iota
|
|
Repeated
|
|
AfterProcessingTime
|
|
AfterAtLeastCount
|
|
OrFinally
|
|
)
|
|
|
|
var DefaultTrigger = AfterWatermarkTriggerSpec{}
|
|
|
|
type AfterWatermarkTriggerSpec struct {
|
|
AllowedLateness Duration
|
|
}
|
|
|
|
func (AfterWatermarkTriggerSpec) Kind() TriggerKind {
|
|
return AfterWatermark
|
|
}
|
|
|
|
type RepeatedTriggerSpec struct {
|
|
Trigger TriggerSpec
|
|
}
|
|
|
|
func (RepeatedTriggerSpec) Kind() TriggerKind {
|
|
return Repeated
|
|
}
|
|
|
|
type AfterProcessingTimeTriggerSpec struct {
|
|
Duration Duration
|
|
}
|
|
|
|
func (AfterProcessingTimeTriggerSpec) Kind() TriggerKind {
|
|
return AfterProcessingTime
|
|
}
|
|
|
|
type AfterAtLeastCountTriggerSpec struct {
|
|
Count int
|
|
}
|
|
|
|
func (AfterAtLeastCountTriggerSpec) Kind() TriggerKind {
|
|
return AfterAtLeastCount
|
|
}
|
|
|
|
type OrFinallyTriggerSpec struct {
|
|
Main TriggerSpec
|
|
Finally TriggerSpec
|
|
}
|
|
|
|
func (OrFinallyTriggerSpec) Kind() TriggerKind {
|
|
return OrFinally
|
|
}
|