пользователя в зависимости от условия, например крон отработал
К примеру 10к пользователей добавилось в очередь, у каждого пользователя есть задержка, эта задержка прописывается в конфиг через какое время она (очередь) должна выполниться
когда очередь выполняется, то выполняется запрос на внешний ресурс
к примеру, 10к юзеров, имеют задержку в 5 мин, все они добавились в очередь
как бы вы оптимизировали выполнение 10к запросов?
- при этом нельзя попасть rate limit
- всем юзерам нужно сделать запрос +- через 5-7 мин, а не первый пришел, первый ушел
- минимальная нагрузка на сервак (1 гб оператвы, 4 подкачки и 1 ядро проца)
сейчас все работает, но время выполнения запроса не соответствует той задержке, которая указана из-за большого количества пользователей
Я бы использовать какой нибудь рейтлимитер готовый
А куда запросы?
бинанс https://www.binance.com/ru/support/faq/360004492232 тут вопрос в том, чтобы все юзеры, которые попали в очередь, сделали запрос через то время, которое они указали в конфиге профиля то есть, если это было 5 минут, то после условия, на которое сработает крон, запрос выполнился через время указанное юзером а таких юзеров например 10к и все они указали 5 мин задержку
Эмпирическим путём вводишь оптимальное количество параллельных запросов и делаешь их пачками один за другим. Если рейт лимит по времени, то считай запросы в секунду с округлением до меньшего
Обсуждают сегодня