170 похожих чатов

Всем привет! Мы с одного сервиса подтягиваем инфу. Там иногда срабатывает

rate limit и ограничение у них в 1rps и 200k rpm
Я так догадываюсь что наше приложение иногда шлет больше 1 запроса в секунду.
Из вариантов - поставить retry на http guzzle либо написать сервис прослойку который будет обрабатывать запросы однопоточно

Что лучше?

8 ответов

8 просмотров

С ретраем вы будете делать ещё больше запросов и вас забанят насовсем

мы почти так делали https://laravel.com/docs/10.x/queues#rate-limiting

если ответ не нужен реалтайм (например это не пользователь инициирует этот запрос) то складываете все запросы "в кучку" (файл на диске, стэк в редисе, таблица в бд, в кафку в конце концов пихаете если хочется сделать круто. скоре всего стэк в редиске это то что вам нужно) запускаете консьюмер который будет это обрабатывать (или вместе со складыванием запускаете джобу которая будет проверять что она синглтон) и вуаля. внутри консьюмера делаете логику обработки запросов. если реалтайм - заводите в редиске время последнего вызова апи, заводите "очередь" в которую будут вставать юзеры которые пытались обратиться, и со слипом ждут своей очереди

А задачу вы какую решаете? Обмануть или в рейт лимит влезть? Если второе - то ничего кроме очереди и самому считать рейтлимиты особо и не придумано. Если первое - ну это скорее не в открытых чатах спрашивать :)

Anton Rusakov
А задачу вы какую решаете? Обмануть или в рейт лим...

если это публичный доступ то прокси. если по ключу то без второго ключа ничего не придумаешь. что тут обсуждать...)))))

Алексей
если это публичный доступ то прокси. если по ключу...

Я бы не хотел обсуждать не совсем легальные способы в этом канале. А я уверен что в правилах описано что так делать нельзя :)

Anton Rusakov
Я бы не хотел обсуждать не совсем легальные способ...

так мы и не обсуждаем) это всего лишь теоретически рассуждения о том как вайтхэт пенетратору пентестить систему)

Алексей
так мы и не обсуждаем) это всего лишь теоретически...

Ну давай тогда это в этом ключе так и оставим и закроем разговор

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта