main.go 1.4 KB

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