Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewLogExitedCallback ¶
NewLogExitedCallback returns a ExitedCb which logs when a controller exited.
Types ¶
type Option ¶
type Option interface { // ApplyToRoutineContainer applies the option to the RoutineContainer. ApplyToRoutineContainer(k *RoutineContainer) }
Option is an option for a RoutineContainer instance.
func WithExitCb ¶
WithExitCb adds a callback after a routine exits.
func WithExitLogger ¶
WithExitLogger adds a exited callback which logs information about the exit.
type Routine ¶
Routine is a function called as a goroutine. If nil is returned, exits cleanly permanently. If an error is returned, can be restarted later.
type RoutineContainer ¶
type RoutineContainer struct {
// contains filtered or unexported fields
}
RoutineContainer contains a Routine.
func NewRoutineContainer ¶
func NewRoutineContainer(opts ...Option) *RoutineContainer
NewRoutineContainer constructs a new RoutineContainer. Note: routines won't start until SetContext is called.
func NewRoutineContainerWithLogger ¶
func NewRoutineContainerWithLogger(le *logrus.Entry) *RoutineContainer
NewRoutineContainerWithLogger constructs a new RoutineContainer instance. Logs when a controller exits without being canceled.
Note: routines won't start until SetContext is called.
func (*RoutineContainer) RestartRoutine ¶
func (k *RoutineContainer) RestartRoutine() bool
RestartRoutine restarts the existing routine (if set). Returns if the routine was restarted. Returns false if the context is currently nil or the routine is unset.
func (*RoutineContainer) SetContext ¶
func (k *RoutineContainer) SetContext(ctx context.Context, restart bool) bool
SetContext updates the root context. If ctx == nil, stops the routine. if restart is true, errored routines will also restart. Returns if the routine was stopped or restarted.
func (*RoutineContainer) SetRoutine ¶
func (k *RoutineContainer) SetRoutine(routine Routine) bool
SetRoutine sets the routine to execute, resetting the existing, if set. If the specified routine is nil, shuts down the current routine. If routine = nil, waits to return until the existing routine fully shuts down. Otherwise, returns right away without blocking. Returns if the current routine was stopped or overwritten.
func (*RoutineContainer) WaitExited ¶ added in v1.0.1
func (k *RoutineContainer) WaitExited(ctx context.Context, errCh <-chan error) error
WaitExited waits for the routine to exit and returns the error if any. Note: Will NOT return after the routine is restarted normally. errCh is an optional error channel (can be nil)