更新环境配置,优化数据库和Redis连接设置

- 修改`.env.example`文件,更新数据库和Redis的默认主机地址为`192.168.9.127`
- 在`docker-compose.yml`中移除不必要的卷挂载配置
- 在`go.mod`中添加`github.com/joho/godotenv`依赖以支持环境变量加载
- 更新`README.md`以反映新的数据库和Redis连接信息
- 在`main.go`中加载环境变量以支持动态配置
- 新增缓存存在性检查功能,避免重复预热缓存
- 优化CSV读取逻辑,支持从S3获取数据
This commit is contained in:
eafonyang
2026-06-08 14:52:23 +08:00
parent 99785672a5
commit 87bdad34fc
15 changed files with 136 additions and 110 deletions
+12 -9
View File
@@ -15,12 +15,11 @@ type DatabaseConfig struct {
}
func loadDatabase(env string) (DatabaseConfig, error) {
if os.Getenv("DATABASE_HOST") != "" {
return databaseFromEnv()
}
switch env {
case "production":
if os.Getenv("DATABASE_HOST") != "" {
return databaseFromEnv()
}
return DatabaseConfig{
Host: "database-1.chmuueamo72p.eu-central-1.rds.amazonaws.com",
Port: 3306,
@@ -29,12 +28,16 @@ func loadDatabase(env string) (DatabaseConfig, error) {
Password: os.Getenv("DATABASE_PASSWORD"),
}, nil
default:
port, err := strconv.Atoi(getEnv("DATABASE_PORT", "3306"))
if err != nil {
return DatabaseConfig{}, fmt.Errorf("invalid DATABASE_PORT: %w", err)
}
return DatabaseConfig{
Host: "192.168.9.137",
Port: 3306,
Name: "audio",
User: "root",
Password: "root123",
Host: getEnv("DATABASE_HOST", "192.168.9.127"),
Port: port,
Name: getEnv("DATABASE_NAME", "audio"),
User: getEnv("DATABASE_USER", "root"),
Password: getEnv("DATABASE_PASSWORD", "root123"),
}, nil
}
}
+4 -18
View File
@@ -3,32 +3,18 @@ package config
import "os"
type EqualizeConfig struct {
APIURL string
MeasurementBasePath string
TargetBasePath string
APIURL string
}
func loadEqualize(env string) EqualizeConfig {
if os.Getenv("EQ_API_URL") != "" {
return EqualizeConfig{
APIURL: os.Getenv("EQ_API_URL"),
MeasurementBasePath: getEnv("MEASUREMENT_BASE_PATH", "/app/measurements"),
TargetBasePath: getEnv("TARGET_BASE_PATH", "/app/targets"),
}
return EqualizeConfig{APIURL: os.Getenv("EQ_API_URL")}
}
switch env {
case "production":
return EqualizeConfig{
APIURL: "http://172.31.18.70:8000/equalize",
MeasurementBasePath: getEnv("MEASUREMENT_BASE_PATH", "/app/measurements"),
TargetBasePath: getEnv("TARGET_BASE_PATH", "/app/targets"),
}
return EqualizeConfig{APIURL: "http://172.31.18.70:8000/equalize"}
default:
return EqualizeConfig{
APIURL: "https://autoeq.app/equalize",
MeasurementBasePath: getEnv("MEASUREMENT_BASE_PATH", "/app/measurements"),
TargetBasePath: getEnv("TARGET_BASE_PATH", "/app/targets"),
}
return EqualizeConfig{APIURL: "https://autoeq.app/equalize"}
}
}
+11 -10
View File
@@ -14,12 +14,11 @@ type RedisConfig struct {
}
func loadRedis(env string) RedisConfig {
if os.Getenv("REDIS_HOST") != "" {
return redisFromEnv()
}
switch env {
case "production":
if os.Getenv("REDIS_HOST") != "" {
return redisFromEnv("16279")
}
return RedisConfig{
Host: "172.31.38.162",
Port: 16279,
@@ -27,17 +26,19 @@ func loadRedis(env string) RedisConfig {
Database: 1,
}
default:
port, _ := strconv.Atoi(getEnv("REDIS_PORT", "6379"))
db, _ := strconv.Atoi(getEnv("REDIS_DATABASE", "1"))
return RedisConfig{
Host: "192.168.9.137",
Port: 6379,
Password: "",
Database: 1,
Host: getEnv("REDIS_HOST", "192.168.9.127"),
Port: port,
Password: getEnv("REDIS_PASSWORD", ""),
Database: db,
}
}
}
func redisFromEnv() RedisConfig {
port, _ := strconv.Atoi(getEnv("REDIS_PORT", "16279"))
func redisFromEnv(defaultPort string) RedisConfig {
port, _ := strconv.Atoi(getEnv("REDIS_PORT", defaultPort))
db, _ := strconv.Atoi(getEnv("REDIS_DATABASE", "1"))
return RedisConfig{