Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractCacheController ¶
ExtractCacheController extracts a *cache.Controller from a *cacheWorker.
func Manifold ¶
func Manifold(config ManifoldConfig) dependency.Manifold
Manifold returns a dependency.Manifold that will run a model cache worker. The manifold outputs a *cache.Controller, primarily for the apiserver to depend on and use.
Types ¶
type Clock ¶
type Clock interface {
// After waits for the duration to elapse and then sends the
// current time on the returned channel.
After(time.Duration) <-chan time.Time
}
Clock provides an interface for dealing with clocks.
type Config ¶
type Config struct {
StatePool *state.StatePool
Hub Hub
InitializedGate Unlocker
Logger Logger
PrometheusRegisterer prometheus.Registerer
Cleanup func()
// Notify is used primarily for testing, and is passed through
// to the cache.Controller. It is called every time the controller
// processes an event.
Notify func(interface{})
// WatcherFactory supplies the watcher that supplies deltas from state.
// We use a factory because we do not allow the worker loop to be crashed
// by a watcher that stops in an error state.
// Watcher acquisition my occur multiple times during a worker life-cycle.
WatcherFactory func() multiwatcher.Watcher
// WatcherRestartDelayMin is the minimum duration of the worker pause
// before instantiating a new all-watcher when the previous one returns an
// error.
// This is intended to prevent log flooding in the case of unrecoverable
// watcher errors.
WatcherRestartDelayMin time.Duration
// WatcherRestartDelayMax is the maximum duration of the worker pause
// before instantiating a new all-watcher when the previous one returns an
// error.
WatcherRestartDelayMax time.Duration
// Clock is used to enforce watcher restart delays.
Clock Clock
}
Config describes the necessary fields for NewWorker.
func (Config) WithDefaultRestartStrategy ¶
WithDefaultRestartStrategy returns a new config with production-use settings for the all-watcher restart strategy.
type Logger ¶
type Logger interface {
IsTraceEnabled() bool
Tracef(string, ...interface{})
Errorf(string, ...interface{})
Criticalf(string, ...interface{})
}
Logger describes the logging methods used in this package by the worker.
type ManifoldConfig ¶
type ManifoldConfig struct {
StateName string
CentralHubName string
MultiwatcherName string
InitializedGateName string
Logger Logger
PrometheusRegisterer prometheus.Registerer
NewWorker func(Config) (worker.Worker, error)
}
ManifoldConfig holds the information necessary to run a model cache worker in a dependency.Engine.
func (ManifoldConfig) Validate ¶
func (config ManifoldConfig) Validate() error
Validate validates the manifold configuration.