Требуется реализовать алгоритм скользящее окно. C#
Требуется реализовать алгоритм скользящее окно. C#
На этапе инициализации задаются 2 параметра:
1) максимально возможное количество обращений;
2) ширина окна (длина временного интервала) в миллисекундах (например 30 обращений в одну секунду(1000мс)).
Алгоритм должен обеспечивать многопоточную обработку входящих запросов от подписчиков по добавлению элементов в исходящую очередь максимально быстро с соблюдением ограничений, накладываемых параметрами окна.
Далее подписчики начинают в нескольких потоках запрашивать алгоритм о возможности добавить элемент.
Пример для (2 100)
Да (таймаут 50 мс) Да, Нет, (таймаут 50 мс), Да, Нет, Нет ...
Ожидаемая нагрузка: из шестидесяти четырех потоков, этот метод каждую секунду в течении 10 секунд будет вызываться миллион раз