Documentation
¶
Index ¶
Constants ¶
View Source
const DefaultGracefulShutdownPeriod = 30 * time.Second
DefaultGracefulShutdownPeriod is the default graceful shutdown timeout to wait for Runnables to shutdown on Collection stop.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Collection ¶
type Collection interface {
// Add will cause the Runnable to be started when Start is called.
// It is started automatically if the Collection was already started.
Add(Runnable) error
// Start starts all registered Runnables and blocks until the stop channel is closed.
// Returns an error if there is an error starting any Runnable.
Start(stop <-chan struct{}) error
}
Collection is a runtime utility to manage a collection of processes and handle graceful shutdown if one of them errors at any time.
func New ¶
func New(options Options, runnables ...Runnable) Collection
New returns a new Collection for managing Runnables.
type Options ¶
type Options struct {
// The logger that should be used by the Collection.
// If none is set, no logging is done.
Logger logr.Logger
// Whether all Runnables in the Collection should be running or none.
// The complete Collection will be stopped if one Runnable returns.
AllOrNothing bool
// GracefulShutdownTimeout is the duration given to Runnable to
// stop before the Collection actually returns on stop.
// To disable graceful shutdown, set to time.Duration(0)
// To use graceful shutdown without timeout, set to a negative duration, e.g. time.Duration(-1).
// If not set DefaultGracefulShutdownPeriod is used.
GracefulShutdownTimeout *time.Duration
}
Options are the arguments for creating a new Collection
type Runnable ¶
type Runnable interface {
// Start starts running the component. The component will stop running
// when the channel is closed. Start blocks until the channel is closed or
// an error occurs.
Start(stop <-chan struct{}) error
}
Runnable allows a component to be started. It's very important that Start blocks until it's done running.
type RunnableFunc ¶
type RunnableFunc func(stop <-chan struct{}) error
RunnableFunc implements Runnable using a function. It's very important that it blocks until it's done running.
func (RunnableFunc) Start ¶
func (r RunnableFunc) Start(stop <-chan struct{}) error
Start implements Runnable.
Click to show internal directories.
Click to hide internal directories.