Files
kenaito-conf/server/internal/scheduler/scheduler.go
T

28 lines
799 B
Go

package scheduler
import (
"kenaito-conf/server/internal/dao"
"kenaito-conf/server/internal/logger"
"kenaito-conf/server/internal/model"
"time"
)
func Start() {
go func() {
ticker := time.NewTicker(1 * time.Minute)
defer ticker.Stop()
for range ticker.C {
fiveMinutesAgo := time.Now().Add(-5 * time.Minute)
affected, err := dao.Engine.Where("last_ping_at < ?", fiveMinutesAgo).Delete(&model.ClientInstance{})
if err != nil {
logger.SugaredLogger.Errorf("[scheduler] cleanup expired client instances error: %v", err)
continue
}
if affected > 0 {
logger.SugaredLogger.Infof("[scheduler] cleaned up %d expired client instance(s)", affected)
}
}
}()
logger.SugaredLogger.Info("[scheduler] client instance cleanup task started, interval: 1m, expire: 5m")
}