main.go 1.6 KB

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