Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type FetcherConfig ¶
type FetcherConfig interface {
Logger() Logger
Instrumentation() Instrumentation
}
type Instrumentation ¶
type Instrumentation interface {
Count(key string, value int)
Duration(key string, start time.Time)
}
Instrumentation records the performances and events
type Logger ¶
type Logger interface {
Error(message string, args ...interface{})
Warn(message string, args ...interface{})
Info(message string, args ...interface{})
Debug(message string, args ...interface{})
}
Logger logs stuff
type MyConfig ¶
type MyConfig interface {
Logger() Logger
Instrumentation() Instrumentation
Timeout() time.Duration
Workers() int
}
MyConfig defines the config for MyStruct
type MyObject ¶
type MyObject struct{}
func NewFetcher ¶
func NewFetcher(cfg FetcherConfig, url string, timeout time.Duration) *MyObject
type MyStruct ¶
type MyStruct struct {
}
MyStruct does something fantastic
func NewByConfigConstructor ¶
func NewByConfigConstructor(cfg MyConfig, limiter RateLimiter, cache Cache) *MyStruct
NewByConfigConstructor is the constructor for MyStruct
func NewLongConstructor ¶
func NewLongConstructor(logger Logger, stats Instrumentation, limiter RateLimiter, cache Cache, timeout time.Duration, workers int) *MyStruct
NewLongConstructor is the constructor for MyStruct
type RateLimiter ¶
type RateLimiter interface {
Acquire()
Release()
}
RateLimiter limits how many concurrent requests we can make or process
Click to show internal directories.
Click to hide internal directories.