first commit

This commit is contained in:
2025-11-21 16:32:35 +08:00
parent a54424afba
commit ce361482f4
26 changed files with 2445 additions and 0 deletions

72
internal/server/http.go Normal file
View File

@@ -0,0 +1,72 @@
package server
import (
"context"
"fmt"
"net/http"
"linkmaster-node/internal/config"
"linkmaster-node/internal/handler"
"linkmaster-node/internal/recovery"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
type HTTPServer struct {
server *http.Server
logger *zap.Logger
}
func NewHTTPServer(cfg *config.Config) *HTTPServer {
if !cfg.Debug {
gin.SetMode(gin.ReleaseMode)
}
router := gin.New()
router.Use(gin.Recovery())
router.Use(recoveryMiddleware)
// 初始化持续测试处理器
handler.InitContinuousHandler(cfg)
// 启动任务清理goroutine
handler.StartTaskCleanup()
// 注册路由
api := router.Group("/api")
{
api.POST("/test", handler.HandleTest)
api.POST("/continuous/start", handler.HandleContinuousStart)
api.POST("/continuous/stop", handler.HandleContinuousStop)
api.GET("/continuous/status", handler.HandleContinuousStatus)
api.GET("/health", handler.HandleHealth)
}
server := &http.Server{
Addr: fmt.Sprintf(":%d", cfg.Server.Port),
Handler: router,
}
logger, _ := zap.NewProduction()
return &HTTPServer{
server: server,
logger: logger,
}
}
func (s *HTTPServer) Start() error {
s.logger.Info("HTTP服务器启动", zap.String("addr", s.server.Addr))
return s.server.ListenAndServe()
}
func (s *HTTPServer) Shutdown(ctx context.Context) error {
return s.server.Shutdown(ctx)
}
func recoveryMiddleware(c *gin.Context) {
defer recovery.Recover()
c.Next()
}