lib

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2023 License: LGPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ChunkSliceBy

func ChunkSliceBy[T any](items []T, chunkSize int) (chunks [][]T)

func InitRedisClient

func InitRedisClient(conf *AppConfig) (*redis.Client, error)

func LoadEnv

func LoadEnv() error

func LoadEnvFromFile

func LoadEnvFromFile(filename string) error

func NewHttpClient

func NewHttpClient(appConf *AppConfig) *http.Client

func NewLogger

func NewLogger(c *AppConfig) (*zap.Logger, error)

Types

type AppConfig

type AppConfig struct {
	AppEnv            AppEnv `env:"APP_ENV"`
	InhooksConfigFile string `env:"INHOOKS_CONFIG_FILE,default=inhooks.yml"`
	Server            Server
	Redis             Redis
	Supervisor        Supervisor
	HTTPClient        HTTPClient
	Sink              Sink
}

func InitAppConfig

func InitAppConfig(ctx context.Context) (*AppConfig, error)

type AppEnv

type AppEnv string
const (
	AppEnvTest        AppEnv = "test"
	AppEnvDevelopment AppEnv = "development"
	AppEnvProduction  AppEnv = "production"
)

type HTTPClient

type HTTPClient struct {
	Timeout time.Duration `env:"HTTP_CLIENT_TIMEOUT,default=5s"`
}

type Redis

type Redis struct {
	URL           string `env:"REDIS_URL,default=redis://localhost:6379"`
	InhooksDBName string `env:"REDIS_INHOOKS_DB_NAME"`
}

type Server

type Server struct {
	Host                string        `env:"HOST"`
	Port                int           `env:"PORT,default=3000"`
	ShutdownGracePeriod time.Duration `env:"SERVER_SHUTDOWN_GRACE_PERIOD,default=5s"`
}

type Sink

type Sink struct {
	DefaultDelay       time.Duration `env:"SINK_DEFAULT_DELAY,default=0"`
	DefaultMaxAttempts int           `env:"SINK_DEFAULT_MAX_ATTEMPTS,default=3"`
	DefaultRetryAfter  time.Duration `env:"SINK_DEFAULT_RETRY_AFTER,default=0"`
}

type Supervisor

type Supervisor struct {
	ReadyWaitTime     time.Duration `env:"SUPERVISOR_READY_WAIT_TIME,default=5s"`
	ErrSleepTime      time.Duration `env:"SUPERVISOR_ERR_SLEEP_TIME,default=5s"`
	SchedulerInterval time.Duration `env:"SUPERVISOR_SCHEDULER_INTERVAL,default=30s"`
}

Supervisor queues handling settings

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL