using NLog; using Server.System; namespace Server.Scheduler { public class SessionScheduler : System.Scheduler { System.Redis redis; NLog.ILogger logger = LogManager.GetCurrentClassLogger(); public SessionScheduler(string cronData, Redis redis) : base(cronData) { this.redis = redis; } public override void Process() { List users = redis.GetList("LoginUser"); DateTime now = DateTime.Now; Console.WriteLine($"SessionScheduler : {now.ToString()}"); //logger.Debug($"SessionScheduler : {now.ToString()}"); for (int n = users.Count - 1; n >= 0; n--) { if ((now - users[n].moveTime).TotalMinutes >= 1) //1분이상 지난상태 { redis.RemoveList(n, users[n], "LoginUser"); redis.RemoveKey("UserSession", users[n].UUID); } } } public class LoginUser { public string UUID; public DateTime moveTime; } } }