Documentation ¶
Overview ¶
Package trigger provides a mechanism to trigger actions that require to be serialized while providing a non-blocking notification mechanism
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MetricsObserver ¶
type MetricsObserver interface { // PostRun is called after a trigger run with the call duration, the // latency between 1st queue request and the call run and the number of // queued events folded into the last run PostRun(owner string, callDuration, latency time.Duration, folds int) // QueueEvent is called when Trigger() is called to schedule a trigger // run QueueEvent(owner, reason string) }
MetricsObserver is the interface a metrics collector has to implement in order to collect trigger metrics
type Parameters ¶
type Parameters struct { // MinInterval is the minimum required interval between invocations of // TriggerFunc MinInterval time.Duration // TriggerFunc is the function to be called when Trigger() is called // while respecting MinInterval and serialization TriggerFunc func(reasons []string) // MaxDelayDuration is the maximum delay between a trigger and its MaxDelayDuration time.Duration Log *logrus.Entry MetricsObserver MetricsObserver // Name is the unique name of the trigger. It must be provided in a // format compatible to be used as prometheus name string. Name string // contains filtered or unexported fields }
Parameters are the user specified parameters
type Trigger ¶
type Trigger struct {
// contains filtered or unexported fields
}
Trigger represents an active trigger logic. Use NewTrigger() to create a trigger
func NewTrigger ¶
func NewTrigger(p Parameters) (*Trigger, error)
NewTrigger returns a new trigger based on the provided parameters
func (*Trigger) Trigger ¶
func (t *Trigger) Trigger()
Trigger triggers the call to TriggerFunc as specified in the parameters provided to NewTrigger(). It respects MinInterval and ensures that calls to TriggerFunc are serialized. This function is non-blocking and will return immediately before TriggerFunc is potentially triggered and has completed.
func (*Trigger) TriggerWithReason ¶
Trigger triggers the call to TriggerFunc as specified in the parameters provided to NewTrigger(). It respects MinInterval and ensures that calls to TriggerFunc are serialized. This function is non-blocking and will return immediately before TriggerFunc is potentially triggered and has completed.