refactor:端口改为int
This commit is contained in:
30
cmd/main.go
30
cmd/main.go
@@ -1,10 +1,14 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"feedsystem_video_go/internal/config"
|
"feedsystem_video_go/internal/config"
|
||||||
"feedsystem_video_go/internal/db"
|
"feedsystem_video_go/internal/db"
|
||||||
apphttp "feedsystem_video_go/internal/http"
|
apphttp "feedsystem_video_go/internal/http"
|
||||||
|
rediscache "feedsystem_video_go/internal/redis"
|
||||||
"log"
|
"log"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -16,7 +20,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Connect database
|
// Connect database
|
||||||
log.Printf("Database config: %v", cfg.Database)
|
//log.Printf("Database config: %v", cfg.Database)
|
||||||
sqlDB, err := db.NewDB(cfg.Database)
|
sqlDB, err := db.NewDB(cfg.Database)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed to connect database: %v", err)
|
log.Fatalf("Failed to connect database: %v", err)
|
||||||
@@ -26,10 +30,28 @@ func main() {
|
|||||||
}
|
}
|
||||||
defer db.CloseDB(sqlDB)
|
defer db.CloseDB(sqlDB)
|
||||||
|
|
||||||
|
// Connect redis (optional, used for caching)
|
||||||
|
cache, err := rediscache.NewFromEnv()
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Redis config error (cache disabled): %v", err)
|
||||||
|
cache = nil
|
||||||
|
} else {
|
||||||
|
pingCtx, cancel := context.WithTimeout(context.Background(), 300*time.Millisecond)
|
||||||
|
defer cancel()
|
||||||
|
if err := cache.Ping(pingCtx); err != nil {
|
||||||
|
log.Printf("Redis not available (cache disabled): %v", err)
|
||||||
|
_ = cache.Close()
|
||||||
|
cache = nil
|
||||||
|
} else {
|
||||||
|
defer cache.Close()
|
||||||
|
log.Printf("Redis connected (cache enabled)")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Set router
|
// Set router
|
||||||
r := apphttp.SetRouter(sqlDB)
|
r := apphttp.SetRouter(sqlDB, cache)
|
||||||
log.Printf("Server is running on port %s", cfg.Server.Port)
|
log.Printf("Server is running on port %d", cfg.Server.Port)
|
||||||
if err := r.Run(":" + cfg.Server.Port); err != nil {
|
if err := r.Run(":" + strconv.Itoa(cfg.Server.Port)); err != nil {
|
||||||
log.Fatalf("Failed to run server: %v", err)
|
log.Fatalf("Failed to run server: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,12 +12,12 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ServerConfig struct {
|
type ServerConfig struct {
|
||||||
Port string `yaml:"port"`
|
Port int `yaml:"port"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DatabaseConfig struct {
|
type DatabaseConfig struct {
|
||||||
Host string `yaml:"host"`
|
Host string `yaml:"host"`
|
||||||
Port string `yaml:"port"`
|
Port int `yaml:"port"`
|
||||||
User string `yaml:"user"`
|
User string `yaml:"user"`
|
||||||
Password string `yaml:"password"`
|
Password string `yaml:"password"`
|
||||||
DBName string `yaml:"dbname"`
|
DBName string `yaml:"dbname"`
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func NewDB(dbcfg config.DatabaseConfig) (*gorm.DB, error) {
|
func NewDB(dbcfg config.DatabaseConfig) (*gorm.DB, error) {
|
||||||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
|
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",
|
||||||
dbcfg.User, dbcfg.Password, dbcfg.Host, dbcfg.Port, dbcfg.DBName)
|
dbcfg.User, dbcfg.Password, dbcfg.Host, dbcfg.Port, dbcfg.DBName)
|
||||||
|
|
||||||
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||||
|
|||||||
Reference in New Issue
Block a user