| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 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.App.AppEnv)
- if err != nil {
- panic(err)
- }
- defer logger.Log.Sync() // 退出前同步zap缓冲区
- // 初始化数据库
- err = database.Init(&cfg.App)
- if err != nil {
- zap.L().Error("database init failed.", zap.String("err", err.Error()))
- panic(err)
- }
- // 初始化缓存
- cache.Init(cfg.App.RedisAddr)
- // 初始化Minio
- minio.InitClient(&cfg.App)
- // 初始化FwhApi
- repositories.FwhHttpInit(&cfg.FwhApi)
- // 初始化计划任务
- scheduler.Init()
- // 初始化任务队列
- taskQueue.InitTaskQueue()
- // 初始化Casdoor
- casdoor.InitAuthConfig()
- // 初始化FWH MQTT客户端
- repositories.FwhMqttInit(&cfg.FwhMqtt)
- 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.App.AppPort)
- if err != nil {
- zap.L().Error("Port listening failed.", zap.String("err", err.Error()))
- panic(err)
- }
- }
|