Re: Алгоритмы потоковой обработки
От: Буравчик Россия  
Дата: 23.12.20 11:26
Оценка: 8 (2) +1
Здравствуйте, n0dwis, Вы писали:

N>"В лоб" я её решил. Т.е. просто накапливать запросы, вместе со временем их поступления и по таймеру очищать старые. Но, по-видимому, предполагался другой подход — анализ сразу на лету. Но не могу понять, каким образом отбрасывать старые данные? Не знаю даже, в каком направлении искать.


На лету (без таймера) так:
— для каждого пользователя храним время для 100 последних запросов этого пользователя (например, в виде queue)
— при поступлении запроса добавляем его в конец очереди и удаляем самый старый запрос (самый первый)
— вычисляем разницу по времени между этими запросами и сравниваем ее с одной минутой — определили робот, или нет
— обновляем количество текущих роботов
Best regards, Буравчик
Отредактировано 23.12.2020 11:28 Буравчик . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.