27 lines
626 B
Go
27 lines
626 B
Go
package application
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/sethvargo/go-envconfig"
|
|
)
|
|
|
|
type Config struct {
|
|
PacketInputInterval time.Duration `env:"PACKET_INPUT_INTERVAL,default=200ms"`
|
|
WorkersCount uint `env:"WORKERS_COUNT,default=10"`
|
|
OutputInterval time.Duration `env:"OUTPUT_INTERVAL,default=2s"`
|
|
PacketMaxValues int64 `env:"PACKET_MAX_VALUES,default=9"`
|
|
}
|
|
|
|
func NewConfig(ctx context.Context) (Config, error) {
|
|
var cfg Config
|
|
|
|
if err := envconfig.Process(ctx, &cfg); err != nil {
|
|
return Config{}, fmt.Errorf("failed to process env vars: %w", err)
|
|
}
|
|
|
|
return cfg, nil
|
|
}
|