main.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "newaterobot-process/config"
  6. "newaterobot-process/database"
  7. "newaterobot-process/routes"
  8. "newaterobot-process/utils"
  9. )
  10. func main() {
  11. // 初始化日志组件
  12. utils.InitLogger()
  13. utils.Infof("Starting application...")
  14. // 加载配置文件
  15. err := config.LoadConfig()
  16. if err != nil {
  17. log.Fatalf("Failed to load config: %v", err)
  18. }
  19. utils.Infof("Config loaded successfully")
  20. // 初始化数据库
  21. err = database.InitDB()
  22. if err != nil {
  23. log.Fatalf("Failed to initialize database: %v", err)
  24. }
  25. utils.Infof("Database initialized successfully")
  26. // 初始化Redis
  27. err = database.InitRedis()
  28. if err != nil {
  29. log.Fatalf("Failed to initialize Redis: %v", err)
  30. }
  31. utils.Infof("Redis initialized successfully")
  32. // 自动迁移数据库表
  33. // err = database.DB.AutoMigrate(&entity.User{})
  34. // if err != nil {
  35. // log.Fatalf("Failed to auto migrate database tables: %v", err)
  36. // }
  37. // utils.Infof("Database tables migrated successfully")
  38. // 初始化路由
  39. r := routes.InitRouter()
  40. // 启动服务
  41. port := config.GlobalConfig.Server.Port
  42. utils.Infof("Server starting on port %d", port)
  43. err = r.Run(fmt.Sprintf(":%d", port))
  44. if err != nil {
  45. log.Fatalf("Failed to start server: %v", err)
  46. }
  47. }
  48. // 关闭程序时释放资源
  49. func init() {
  50. // 确保在程序退出时关闭数据库连接
  51. defer func() {
  52. err := database.CloseRedis()
  53. if err != nil {
  54. log.Printf("Failed to close Redis: %v", err)
  55. }
  56. }()
  57. }