thewar_server/Server/Scheduler/SessionScheduler.cs

46 lines
1.1 KiB
C#

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<LoginUser> users = redis.GetList<LoginUser>("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;
}
}
}