Documentation
¶
Index ¶
- func ChunkSliceBy[T any](items []T, chunkSize int) (chunks [][]T)
- func InitRedisClient(conf *AppConfig) (*redis.Client, error)
- func LoadEnv() error
- func LoadEnvFromFile(filename string) error
- func NewHttpClient(appConf *AppConfig) *http.Client
- func NewLogger(c *AppConfig) (*zap.Logger, error)
- type AppConfig
- type AppEnv
- type HTTPClientConfig
- type RedisConfig
- type ServerConfig
- type SinkConfig
- type SupervisorConfig
- type TransformConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChunkSliceBy ¶
func LoadEnvFromFile ¶
func NewHttpClient ¶
Types ¶
type AppConfig ¶
type AppConfig struct {
AppEnv AppEnv `env:"APP_ENV"`
InhooksConfigFile string `env:"INHOOKS_CONFIG_FILE,default=inhooks.yml"`
Server ServerConfig
Redis RedisConfig
Supervisor SupervisorConfig
HTTPClient HTTPClientConfig
Sink SinkConfig
Transform TransformConfig
}
type HTTPClientConfig ¶ added in v0.1.3
type RedisConfig ¶ added in v0.1.3
type ServerConfig ¶ added in v0.1.3
type SinkConfig ¶ added in v0.1.3
type SinkConfig struct {
DefaultDelay time.Duration `env:"SINK_DEFAULT_DELAY,default=0"`
DefaultMaxAttempts int `env:"SINK_DEFAULT_MAX_ATTEMPTS,default=3"`
DefaultRetryInterval time.Duration `env:"SINK_DEFAULT_RETRY_AFTER,default=0"`
// default retry exponential mutiplier is 1 (constant backoff)
DefaultRetryExpMultiplier float64 `env:"SINK_DEFAULT_RETRY_EXP_MULTIPLIER,default=1"`
}
type SupervisorConfig ¶ added in v0.1.3
type SupervisorConfig struct {
ReadyWaitTime time.Duration `env:"SUPERVISOR_READY_WAIT_TIME,default=5s"`
ReadyQueueConcurrency int `env:"SUPERVISOR_READY_QUEUE_CONCURRENCY,default=5"`
ErrSleepTime time.Duration `env:"SUPERVISOR_ERR_SLEEP_TIME,default=5s"`
// interval between scheduler runs to move scheduled jobs to "ready for processing" queue
SchedulerInterval time.Duration `env:"SUPERVISOR_SCHEDULER_INTERVAL,default=30s"`
// interval to move back stuck messages from processing to ready queue
ProcessingRecoveryInterval time.Duration `env:"SUPERVISOR_PROCESSING_RECOVERY_INTERVAL,default=5m"`
// enables deleting done messages from the database after DoneQueueCleanupDelay
DoneQueueCleanupEnabled bool `env:"SUPERVISOR_DONE_QUEUE_CLEANUP_ENABLED,default=false"`
// delay after which done messages are deleted from the database. Default 14 days = 336 hours
DoneQueueCleanupDelay time.Duration `env:"SUPERVISOR_DONE_QUEUE_CLEANUP_DELAY,default=336h"`
// interval between done queue cleanup runs
DoneQueueCleanupInterval time.Duration `env:"SUPERVISOR_DONE_QUEUE_CLEANUP_INTERVAL,default=60m"`
// enables deleting dead messages from the database after DeadQueueCleanupDelay
DeadQueueCleanupEnabled bool `env:"SUPERVISOR_DEAD_QUEUE_CLEANUP_ENABLED,default=false"`
// delay after which dead messages are deleted from the database. Default 14 days = 336 hours
DeadQueueCleanupDelay time.Duration `env:"SUPERVISOR_DEAD_QUEUE_CLEANUP_DELAY,default=336h"`
// interval between dead queue cleanup runs
DeadQueueCleanupInterval time.Duration `env:"SUPERVISOR_DEAD_QUEUE_CLEANUP_INTERVAL,default=70m"`
// interval between queue metrics collection runs
QueueMetricsInterval time.Duration `env:"SUPERVISOR_QUEUE_METRICS_INTERVAL,default=30s"`
}
Supervisor queues handling settings
type TransformConfig ¶ added in v0.1.9
Click to show internal directories.
Click to hide internal directories.