- API 서비스 workerclient Hello 함수에 context.Err() 선행 검증 추가 - Hello 요청을 goroutine으로 비동기 처리하고 select로 ctx.Done() 감지 - 이미 초과된 deadline인 경우 즉시 에러 반환 - worker 서비스 config에서 strconv import를 config.go로 이동 - worker socket session handler 및 registerHandlers 테스트 추가 - parser_map 테스트 파일 신규 추가
47 lines
1 KiB
Go
47 lines
1 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
)
|
|
|
|
type Config struct {
|
|
DatabaseURL string
|
|
RedisURL string
|
|
RedisKeyPrefix string
|
|
WorkerQueue string
|
|
Host string
|
|
Port int
|
|
SocketPath string
|
|
}
|
|
|
|
func Load() Config {
|
|
return Config{
|
|
DatabaseURL: getenv("DATABASE_URL", "postgres://alt:alt@localhost:5432/alt?sslmode=disable"),
|
|
RedisURL: getenv("REDIS_URL", "redis://localhost:6379/0"),
|
|
RedisKeyPrefix: getenv("ALT_REDIS_KEY_PREFIX", "alt"),
|
|
WorkerQueue: getenv("ALT_WORKER_QUEUE", "default"),
|
|
Host: getenv("ALT_WORKER_HOST", "127.0.0.1"),
|
|
Port: getenvInt("ALT_WORKER_PORT", 8081),
|
|
SocketPath: getenv("ALT_WORKER_SOCKET_PATH", "/socket"),
|
|
}
|
|
}
|
|
|
|
func getenv(key, fallback string) string {
|
|
if value := os.Getenv(key); value != "" {
|
|
return value
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
func getenvInt(key string, fallback int) int {
|
|
value := os.Getenv(key)
|
|
if value == "" {
|
|
return fallback
|
|
}
|
|
parsed, err := strconv.Atoi(value)
|
|
if err != nil {
|
|
return fallback
|
|
}
|
|
return parsed
|
|
}
|