Подскажите, как правильно организовать архитекруту приложения для решения следующей задачи:
В БВ с периодичностью +-200 записей в минуту вставляются задачи для "почти парсинга" (url, куда отправить запросы и их количество).
Важно, что один запрос должен быть с 1прокси адреса и далее прокси должна бездействовать 0.5 секунды для защиты от бана.
Сервер поддерживает 500 одновременных запросов по сети.
Мне важна архитектура, которая позволит контролировать скорость запросов в минуту по каждой задаче.
То есть у меня есть 500 потоков, есть 10к прокси и 200 в минуту новых задач.
Если задача - обратиться 100 раз по URL и скорость 50 в минуту, то я могу за одну итерацию потратить 50 прокси и потом надо некоторое время ждать, чтобы не привысить лимит скорости.
Пока не совсем понятно как грамотно контролирвать распределение прокси по задачам и контролировать скорость задач.
Это называеся throttling.
Можно отправлять задачи потштучно в очередь, а оттуда брать с использованием механизма rate limit (гуглится).
Если есть несколько экземпляров сервиса, то можно использовать Redis.