Documentation
¶
Index ¶
Constants ¶
View Source
const ( DelayFieldName = "repeater.delay" DelayDefault = time.Second )
Variables ¶
View Source
var Component = &app.Component{ Dependencies: app.Components{ logger.Component, configurator.Component, re_configuration.Component, }, Constructor: func(container container.Container) error { return container.Provides( NewConfig, NewWithConfigurator, func(repeater *repeater) Repeater { return repeater }, ) }, BindFlags: func(flagSet *pflag.FlagSet, container container.Container) error { return container.Invoke(func(config *Config) { flagSet.DurationVar(&config.Delay, DelayFieldName, DelayDefault, "timeout between task cycles") }) }, Serve: func(c container.Container) error { repeater, err := container.Get[*repeater](c) if err != nil { return err } reConfiguration, err := container.Get[configurator.ReConfiguration](c) if err != nil { return err } informer, err := container.Get[logger.Informer](c) if err != nil { return err } reConfiguration.Registration(repeater) informer.Info("repeater: registration in the reConfigurator") closer, err := container.Get[closer.Closer](c) if err != nil { return err } repeater.Serve(closer.GetContext()) return nil }, }
Functions ¶
func NewWithConfigurator ¶
func NewWithConfigurator(config *Config, configurator configurator.Configurator, informer logger.Informer) *repeater
func SkipFirstRun ¶
func SkipFirstRun(process *process) *process
Types ¶
type Config ¶
func Configuration ¶
func Configuration(config *Config, configurator configurator.Configurator) *Config
type Middleware ¶
type MiddlewareFunc ¶
func (MiddlewareFunc) Middleware ¶
func (middleware MiddlewareFunc) Middleware(next Task) Task
type ProcessFunc ¶
type ProcessOption ¶
type ProcessOption func(process *process) *process
type Repeater ¶
type Repeater interface {
AddProcess(name string, delay time.Duration, process ProcessFunc, opts ...ProcessOption) Repeater
AddTask(task Task, opts ...ProcessOption) Repeater
Serve(ctx context.Context)
Use(middlewares ...MiddlewareFunc) Repeater
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.