package worker import "time" // Config holds worker pool settings. type Config struct { // PoolSize is the number of concurrent goroutines. Default: 5. PoolSize int `env:"EINHERJAR_WORKER_POOL_SIZE" envDefault:"5"` // BufferSize is the task queue capacity. Default: 100. BufferSize int `env:"EINHERJAR_WORKER_BUFFER_SIZE" envDefault:"100"` // TaskTimeout is the maximum duration for a single task. Zero means no deadline. TaskTimeout time.Duration `env:"EINHERJAR_WORKER_TASK_TIMEOUT" envDefault:"0s"` // ShutdownTimeout is how long OnStop waits for goroutines to drain. Default: 30s. ShutdownTimeout time.Duration `env:"EINHERJAR_WORKER_SHUTDOWN_TIMEOUT" envDefault:"30s"` } // DefaultConfig returns a production-safe worker pool configuration. func DefaultConfig() Config { return Config{ PoolSize: 5, BufferSize: 100, TaskTimeout: 0, ShutdownTimeout: 30 * time.Second, } }