provider/cmd/provider.go
timerzz ee9fab7a8f
All checks were successful
Build image / build (push) Successful in 1m15s
"feat(provider): 添加Redis订阅功能并优化Provider服务
- 在Provider服务中添加Redis订阅客户端,用于配置变更通知
- 在UpdateProvider方法中添加配置变更发布逻辑
- 优化Provider初始化方法,支持传入Redis客户端
- 修复Provider状态字典的常量引用问题
- 完善Provider相关API的日志记录"
2025-03-27 10:35:24 +08:00

64 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package main
import (
"context"
"flag"
"os"
"os/signal"
"gitea.timerzz.com/kedaya_haitao/common/pkg/database"
"gitea.timerzz.com/kedaya_haitao/common/pkg/redis"
"gitea.timerzz.com/kedaya_haitao/common/pkg/web"
"gitea.timerzz.com/kedaya_haitao/common/structs/storage"
"gitea.timerzz.com/kedaya_haitao/provider/service"
"github.com/gofiber/fiber/v3"
"github.com/gofiber/fiber/v3/middleware/cors"
"github.com/gofiber/fiber/v3/middleware/recover"
"github.com/sirupsen/logrus"
)
func main() {
flag.Parse()
logrus.Info(">>> BEGIN INIT<<<")
ctx, cancel := signal.NotifyContext(context.Background(), os.Kill, os.Interrupt)
defer cancel()
// 初始化数据库
db, err := database.InitDefaultDatabase()
if err != nil {
logrus.Fatalf("init database failed: %v", err)
}
// 初始化服务
r := fiber.New(fiber.Config{ErrorHandler: web.ErrHandle})
r.Use(cors.New(), recover.New())
stg := storage.NewStorage(db)
if err = stg.Provider().AutoMigrate(); err != nil {
logrus.Fatalf("autoMigrate database failed: %v", err)
}
rdb, err := redis.InitDefaultRedis()
if err != nil {
logrus.Fatalf("初始化redis失败%v", err)
}
svc := []web.Register{
web.NewProbe(),
service.NewProvider(stg, rdb),
}
for _, s := range svc {
s.Registry(r)
}
port := os.Getenv("PORT")
if port == "" {
port = "80"
}
if err = r.Listen(":"+port, fiber.ListenConfig{
EnablePrintRoutes: true,
GracefulContext: ctx,
}); err != nil {
logrus.Warningf("service over: %v", err)
}
}