main.go 1.7 KB

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