main.go 1.5 KB

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