scrapper-mandarake/config/config.go

66 lines
1.7 KiB
Go
Raw Normal View History

2026-04-03 13:02:10 +03:00
package config
2026-04-03 20:52:53 +03:00
import "runtime"
2026-04-03 13:02:10 +03:00
type Config struct {
2026-04-24 12:57:00 +03:00
App AppConfig
Rabbit RabbitMQConfig
Metrics MetricsConfig
2026-04-03 13:02:10 +03:00
}
type AppConfig struct {
2026-04-03 20:52:53 +03:00
Mode string
LogLvl string
ChanLen uint
ExternalBrowser string
NumCPUs int
TaskTimeoutSeconds int
2026-04-03 13:02:10 +03:00
}
type RabbitMQConfig struct {
2026-04-03 19:06:06 +03:00
Host string
Port uint16
User string
Pass string
Vhost string
LoggingEnabled bool
TaskSourceQueue string
TaskResultQueue string
2026-04-03 13:02:10 +03:00
}
2026-04-24 12:57:00 +03:00
type MetricsConfig struct {
Host string
Port string
GinMode string
}
2026-04-03 13:02:10 +03:00
func New() *Config {
return &Config{
App: AppConfig{
2026-04-03 20:52:53 +03:00
Mode: getEnv("APP_MODE", "dev"),
LogLvl: getEnv("APP_LOG_LVL", "debug"),
ChanLen: getEnvUint("APP_CHANNEL_LEN", 100),
ExternalBrowser: getEnv("APP_EXTERNAL_BROWSER", "http://10.0.0.4:13000"),
NumCPUs: getEnvInt("APP_NUMCPUS", runtime.NumCPU()),
TaskTimeoutSeconds: getEnvInt("APP_TASK_TIMEOUT_SECONDS", 60),
2026-04-03 13:02:10 +03:00
},
Rabbit: RabbitMQConfig{
2026-04-03 19:06:06 +03:00
Host: getEnv("RABBIT_HOST", "10.0.0.4"),
Port: getEnvPort("RABBIT_PORT", 5672),
User: getEnv("RABBIT_USER", "parser-mandarake-dev"),
Pass: getEnv("RABBIT_PASS", "dev-pass"),
Vhost: getEnv("RABBIT_VHOST", "taskProcessorDevHost"),
LoggingEnabled: getEnvBool("RABBIT_LOGGING_ENABLED", true),
TaskSourceQueue: getEnv("TASK_SOURCE_QUEUE", "task-publisher-mandarake"),
TaskResultQueue: getEnv("TASK_RESULT_QUEUE", "tasks-results"),
2026-04-03 13:02:10 +03:00
},
2026-04-24 12:57:00 +03:00
Metrics: MetricsConfig{
Host: getEnv("METRICS_HOST", "0.0.0.0"),
Port: getEnv("METRICS_PORT", "19080"),
GinMode: getEnv("METRICS_GIN_MODE", "dev"),
},
2026-04-03 13:02:10 +03:00
}
}