main.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package main
  2. import (
  3. "fwh-toolbox-server/cache"
  4. "fwh-toolbox-server/config"
  5. "fwh-toolbox-server/database"
  6. "fwh-toolbox-server/repositories"
  7. "fwh-toolbox-server/repositories/api/fwh_pro"
  8. "fwh-toolbox-server/taskQueue"
  9. "fwh-toolbox-server/utils/casdoor"
  10. "fwh-toolbox-server/utils/minio"
  11. // "fwh-toolbox-server/database"
  12. _ "fwh-toolbox-server/docs" // swag 自动生成文档
  13. "fwh-toolbox-server/logger"
  14. "fwh-toolbox-server/routes"
  15. "fwh-toolbox-server/scheduler"
  16. "fwh-toolbox-server/networkEvents"
  17. "github.com/gofiber/fiber/v2"
  18. "github.com/gofiber/swagger"
  19. "go.uber.org/zap"
  20. )
  21. func main() {
  22. var cfg *config.Config
  23. var err error
  24. cfg, err = config.LoadConfig()
  25. if err != nil {
  26. panic(err)
  27. }
  28. err = logger.Init(cfg.AppEnv)
  29. if err != nil {
  30. panic(err)
  31. }
  32. defer logger.Log.Sync() // 退出前同步zap缓冲区
  33. // 初始化数据库
  34. err = database.Init(cfg)
  35. if err != nil {
  36. zap.L().Error("database init failed.", zap.String("err", err.Error()))
  37. panic(err)
  38. }
  39. // 初始化缓存
  40. cache.Init(cfg.RedisAddr)
  41. // 初始化Minio
  42. minio.InitClient(cfg)
  43. // 初始化FwhApi
  44. repositories.FwhHttpInit()
  45. // 初始化计划任务
  46. scheduler.Init()
  47. // 初始化任务队列
  48. taskQueue.InitTaskQueue()
  49. // 初始化Casdoor
  50. casdoor.InitAuthConfig()
  51. app := fiber.New()
  52. app.Use(func(c *fiber.Ctx) error {
  53. logger.Log.Info("请求", zap.String("path", c.Path()))
  54. return c.Next()
  55. })
  56. // 注册 Swagger 路由
  57. app.Get("/swagger/*", swagger.HandlerDefault)
  58. routes.Setup(app)
  59. // 启动第一个监听
  60. // go func() {
  61. go func() {
  62. if err := networkEvents.InitEvio(); err != nil {
  63. zap.L().Error("networkEvents init failed.", zap.String("err", err.Error()))
  64. panic(err)
  65. }
  66. }()
  67. // 提前登录FWH
  68. err = fwh_pro.Login()
  69. if err != nil {
  70. zap.L().Error("FWH login failed.", zap.String("err", err.Error()))
  71. panic(err)
  72. }
  73. err = app.Listen("localhost:" + cfg.AppPort)
  74. if err != nil {
  75. zap.L().Error("Port listening failed.", zap.String("err", err.Error()))
  76. panic(err)
  77. }
  78. }