refactor: 添加 logger 模块并优化客户端实例清理逻辑
- 新增 logger 模块,统一使用 zap.SugaredLogger - 将 config_api.go 中的 fmt.Printf 改为 logger.SugaredLogger.Errorf - 客户端实例清理逻辑改为定时任务(每分钟执行) - 清理条件改为 last_ping_at 超过 5 分钟
This commit is contained in:
@@ -7,8 +7,10 @@ import (
|
||||
"kenaito-conf/server/internal/dao"
|
||||
"kenaito-conf/server/internal/handler"
|
||||
"kenaito-conf/server/internal/middleware"
|
||||
"kenaito-conf/server/internal/model"
|
||||
"kenaito-conf/server/internal/service"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -126,6 +128,17 @@ func main() {
|
||||
// start server
|
||||
addr := fmt.Sprintf(":%d", config.Cfg.Server.Port)
|
||||
log.Printf("Server starting on %s", addr)
|
||||
|
||||
// 启动定时任务:清理过期的客户端实例记录
|
||||
go func() {
|
||||
ticker := time.NewTicker(1 * time.Minute)
|
||||
defer ticker.Stop()
|
||||
for range ticker.C {
|
||||
fiveMinutesAgo := time.Now().Add(-5 * time.Minute)
|
||||
dao.Engine.Where("last_ping_at < ?", fiveMinutesAgo).Delete(&model.ClientInstance{})
|
||||
}
|
||||
}()
|
||||
|
||||
if err := r.Run(addr); err != nil {
|
||||
log.Fatalf("server error: %v", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user