package main import ( "fwh-toolbox-server/cache" "fwh-toolbox-server/config" "fwh-toolbox-server/database" "fwh-toolbox-server/repositories" "fwh-toolbox-server/repositories/api/fwh_pro" "fwh-toolbox-server/taskQueue" "fwh-toolbox-server/utils/casdoor" "fwh-toolbox-server/utils/minio" // "fwh-toolbox-server/database" _ "fwh-toolbox-server/docs" // swag 自动生成文档 "fwh-toolbox-server/logger" "fwh-toolbox-server/routes" "fwh-toolbox-server/scheduler" "fwh-toolbox-server/networkEvents" "github.com/gofiber/fiber/v2" "github.com/gofiber/swagger" "go.uber.org/zap" ) func main() { var cfg *config.Config var err error cfg, err = config.LoadConfig() if err != nil { panic(err) } err = logger.Init(cfg.AppEnv) if err != nil { panic(err) } defer logger.Log.Sync() // 退出前同步zap缓冲区 // 初始化数据库 err = database.Init(cfg) if err != nil { zap.L().Error("database init failed.", zap.String("err", err.Error())) panic(err) } // 初始化缓存 cache.Init(cfg.RedisAddr) // 初始化Minio minio.InitClient(cfg) // 初始化FwhApi repositories.FwhHttpInit() // 初始化计划任务 scheduler.Init() // 初始化任务队列 taskQueue.InitTaskQueue() // 初始化Casdoor casdoor.InitAuthConfig() app := fiber.New() app.Use(func(c *fiber.Ctx) error { logger.Log.Info("请求", zap.String("path", c.Path())) return c.Next() }) // 注册 Swagger 路由 app.Get("/swagger/*", swagger.HandlerDefault) routes.Setup(app) // 启动第一个监听 // go func() { go func() { if err := networkEvents.InitEvio(); err != nil { zap.L().Error("networkEvents init failed.", zap.String("err", err.Error())) panic(err) } }() // 提前登录FWH err = fwh_pro.Login() if err != nil { zap.L().Error("FWH login failed.", zap.String("err", err.Error())) // panic(err) } err = app.Listen("localhost:" + cfg.AppPort) if err != nil { zap.L().Error("Port listening failed.", zap.String("err", err.Error())) panic(err) } }