Информация об изменениях

Сообщение Re: Алгоритмы потоковой обработки от 23.12.2020 11:26

Изменено 23.12.2020 11:28 Буравчик

Re: Алгоритмы потоковой обработки
Здравствуйте, n0dwis, Вы писали:

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


На лету (без таймера) так:
— для каждого пользователя храним время для 100 последних запросов этого пользователя (например, в виде queue)
— при поступлении запроса добавляем его в конец очереди и удаляем самый старый запрос (самый первый)
— вычисляем разницу по времени между этими запросами и сравниваем ее с одной минутой — определили робот, или нет
— обновляем количество текущих роботов

N>Подскажите, хоть к какому разделу относятся такого типа задачи.


К этому разделу
Re: Алгоритмы потоковой обработки
Здравствуйте, n0dwis, Вы писали:

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


На лету (без таймера) так:
— для каждого пользователя храним время для 100 последних запросов этого пользователя (например, в виде queue)
— при поступлении запроса добавляем его в конец очереди и удаляем самый старый запрос (самый первый)
— вычисляем разницу по времени между этими запросами и сравниваем ее с одной минутой — определили робот, или нет
— обновляем количество текущих роботов