Сообщение Re: Алгоритмы потоковой обработки от 23.12.2020 11:26
Изменено 23.12.2020 11:28 Буравчик
Re: Алгоритмы потоковой обработки
Здравствуйте, n0dwis, Вы писали:
N>"В лоб" я её решил. Т.е. просто накапливать запросы, вместе со временем их поступления и по таймеру очищать старые. Но, по-видимому, предполагался другой подход — анализ сразу на лету. Но не могу понять, каким образом отбрасывать старые данные? Не знаю даже, в каком направлении искать.
На лету (без таймера) так:
— для каждого пользователя храним время для 100 последних запросов этого пользователя (например, в виде queue)
— при поступлении запроса добавляем его в конец очереди и удаляем самый старый запрос (самый первый)
— вычисляем разницу по времени между этими запросами и сравниваем ее с одной минутой — определили робот, или нет
— обновляем количество текущих роботов
N>Подскажите, хоть к какому разделу относятся такого типа задачи.
К этому разделу
N>"В лоб" я её решил. Т.е. просто накапливать запросы, вместе со временем их поступления и по таймеру очищать старые. Но, по-видимому, предполагался другой подход — анализ сразу на лету. Но не могу понять, каким образом отбрасывать старые данные? Не знаю даже, в каком направлении искать.
На лету (без таймера) так:
— для каждого пользователя храним время для 100 последних запросов этого пользователя (например, в виде queue)
— при поступлении запроса добавляем его в конец очереди и удаляем самый старый запрос (самый первый)
— вычисляем разницу по времени между этими запросами и сравниваем ее с одной минутой — определили робот, или нет
— обновляем количество текущих роботов
N>Подскажите, хоть к какому разделу относятся такого типа задачи.
К этому разделу
Re: Алгоритмы потоковой обработки
Здравствуйте, n0dwis, Вы писали:
N>"В лоб" я её решил. Т.е. просто накапливать запросы, вместе со временем их поступления и по таймеру очищать старые. Но, по-видимому, предполагался другой подход — анализ сразу на лету. Но не могу понять, каким образом отбрасывать старые данные? Не знаю даже, в каком направлении искать.
На лету (без таймера) так:
— для каждого пользователя храним время для 100 последних запросов этого пользователя (например, в виде queue)
— при поступлении запроса добавляем его в конец очереди и удаляем самый старый запрос (самый первый)
— вычисляем разницу по времени между этими запросами и сравниваем ее с одной минутой — определили робот, или нет
— обновляем количество текущих роботов
N>"В лоб" я её решил. Т.е. просто накапливать запросы, вместе со временем их поступления и по таймеру очищать старые. Но, по-видимому, предполагался другой подход — анализ сразу на лету. Но не могу понять, каким образом отбрасывать старые данные? Не знаю даже, в каком направлении искать.
На лету (без таймера) так:
— для каждого пользователя храним время для 100 последних запросов этого пользователя (например, в виде queue)
— при поступлении запроса добавляем его в конец очереди и удаляем самый старый запрос (самый первый)
— вычисляем разницу по времени между этими запросами и сравниваем ее с одной минутой — определили робот, или нет
— обновляем количество текущих роботов