Versions in this module Expand all Collapse all v0 v0.4.0 Jul 19, 2021 Changes in this version + const ErrStartCancelledBySignal + const ListenStateClosed + const ListenStateClosing + const ListenStateIdle + const ListenStateListening + const ListenStateStarting + type MultiErrors []error + func (errs MultiErrors) Error() string + type Resource interface + Start func(ctx context.Context) error + Stop func(ctx context.Context) error + type Runner struct + func NewRunner(opts ...StarterOption) *Runner + func (r *Runner) Finish(ctx context.Context) (errResult error) + func (r *Runner) Run(ctx context.Context, services ...Service) (errResult error) + func (r *Runner) WithReporter(reporter Reporter) *Runner + type Server interface + Close func(ctx context.Context) error + Listen func(ctx context.Context) error + type StarterOption = func(*Runner) + func WithListenerBuilder(builder func() signals.Listener) StarterOption + func WithSignals(ss ...os.Signal) StarterOption v0.3.0 Jul 13, 2021 Changes in this version + var DefaultSignals = []os.Signal + var ErrAlreadyListening = errors.New("service already listening") + type Configurable interface + Load func(ctx context.Context) error + type ManagerOption = func(*ResourceStarter) + func WithReporter(reporter Reporter) ManagerOption + type Reporter interface + AfterLoad func(context.Context, Configurable, error) + AfterStart func(context.Context, Service, error) + AfterStop func(context.Context, Service, error) + BeforeLoad func(context.Context, Configurable) + BeforeStart func(context.Context, Service) + BeforeStop func(context.Context, Service) + SignalReceived func(os.Signal) + type ResourceService interface + Start func(ctx context.Context) error + Stop func(ctx context.Context) error + type ResourceServiceRetrier struct + func (retrier *ResourceServiceRetrier) Name() string + func (retrier *ResourceServiceRetrier) Start(ctx context.Context) error + func (retrier *ResourceServiceRetrier) Stop(ctx context.Context) error + type ResourceStarter struct + func NewManager(opts ...ManagerOption) *ResourceStarter + func (starter *ResourceStarter) Start(ctx context.Context, services ...ResourceService) (errResult error) + func (starter *ResourceStarter) Stop(ctx context.Context) (errResult error) + func (starter *ResourceStarter) WithReporter(reporter Reporter) *ResourceStarter + type RetrierBuilder struct + func Retrier() *RetrierBuilder + func (builder *RetrierBuilder) Backoff(value backoff.BackOff) *RetrierBuilder + func (builder *RetrierBuilder) Build(service ResourceService) ResourceService + func (builder *RetrierBuilder) Reporter(value RetrierReporter) *RetrierBuilder + type RetrierReporter interface + BeforeRetry func(context.Context, Service, int) + type ServerService interface + Close func(ctx context.Context) error + Listen func(ctx context.Context) error + type ServerStarter struct + func NewServerStarter(listener signals.Listener) ServerStarter + func (starter *ServerStarter) Close(_ context.Context) error + func (starter *ServerStarter) Listen(ctx context.Context, services ...ServerService) []error + type Service interface + Name func() string