Подсчет количества захода в аккаунт

Evgeny76

Client
Регистрация
11.09.2015
Сообщения
192
Благодарностей
85
Баллы
28
Всем привет!
Помогите реализовать следующее: есть список, в нем аккаунты; аккаунты берутся случайно без удаления и логинимся на сайт. Как ограничить количество заходов с каждого аккаунта в сутки до 5 раз?
Я пока смог придумать следующее: таблица; в первом столбце сегодняшняя дата, во втором аккаунт, в третьем количество заходов. Далее логика:
беру текущую дату и сравниваю с первым столбцом;
если совпадает, то проверяю третий столбец на нужное мне количество заходов (меньше 5 - работаем с этим аккаунтов, больше 5 - не работаем), в третий столбец прибавляем единицу;
если не совпадает, то записываем в первый столбец текущую дату, третий столбец обнуляем.
Задача вроде не сложная, но получается что-то слишком много кубиков. Уверен что можно это сделать проще, но пока не сооброжу как.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
1 экшен - получаем данные аккаунта - имя;дата последнего использования;количество авторизаций.
2 экшен - сравниваем время последней авторизации с текущим временем.
3 экшен - сравниваем кол-во авторизаций >=5
4 экшен - записываем текущую дату и авторизацию.

2й и 3й эшен можно обьеденить в один IF.

Ну как бы не совсем много. Возможно придется еще 2-3 экшена добавить для вычислений.

Думаю в 10 экшенов обернетесь. :-)
 
  • Спасибо
Реакции: Evgeny76

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
Самое узкое место в этой логике в том, что аккаунты берутся случайные без удалениея. Таким образом на моменте, когда закончатся аккаунты, которые использовались сегодня менее 5 раз можно поймать бесконечный цикл.
По этому нужно еще как-то учитывать тот факт, что были перебраны все строки.
Как вариант - можно аккаунты, которые уже израсходовали на сегодня все попытки переносить в отдельную таблицу, чтобы они не мешались больше сегодня, а на следующий день возвращать их назад в исходную таблицу.
 
  • Спасибо
Реакции: Evgeny76 и one

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Да, тоже проблему создаст. В обще, когда такие перетрубации с аккаунтами происходят лучше всего работать с ними в БД. От туда уже можно дергать их как душе угодно.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)