Files
worker/config.go
T

26 lines
913 B
Go
Raw Permalink Normal View History

2026-05-29 15:46:49 +00:00
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,
}
}