public void Run() { var expiredIds = new List <string>(TokenStore.GetExpired().ToEnumerable()); var expiredTokens = TokenDAO.GetByIdBulk(connection, expiredIds).Result; long expirationCutoff = new DateTimeOffset(DateTime.UtcNow, new TimeSpan(-EXPIRATION_WINDOW_DAYS, 0, 0)).ToUnixTimeMilliseconds(); foreach (var expiredToken in expiredTokens) { if (expiredToken.ExpiresAt > expirationCutoff) { continue; } Log.Info($"Removing expired token { expiredToken.ID }"); TokenDAO.Delete(connection, expiredToken.ID).Wait(); } }