Имя: Пароль:
1C
 
Слишком много запросов к серверу
0 1ctube
 
22.09.25
13:43
Всем привет.
Есть API, с которого нужно стянуть несколько сотен тысяч записей.
По документации за раз я могу получить не больше 500 записей. Далее нужно передавать спецпараметр для следующего набора записей и т. д.
Проблема в том, что после получения набора записей получаю иногда ошибку 429, а иногда прям сразу ещё до получения набора.
Можно ли при использовании HTTP-соединения как-то регулировать количество запросов к серверу? В заголовках у API нет, например, Retry-After.
1 План счетов
 
22.09.25
13:45
В цикле что ли запрос?
Сделай в обработке ожидания, раз в 5 секунд
2 1ctube
 
22.09.25
13:48
(1) Саму процедуру получения записей по апи(в которой создается HTTP-соединение? в обработчике ожидания запускать?
3 p-soft
 
22.09.25
13:59
(2) повесить на регламентные запуск получения очередной порции 500 записей и прописать запуск регламента раз в 2-5 секунд
4 Мультук
 
гуру
22.09.25
14:08
(0)


Либо api не секретный и можно показать ссылку на его документацию на форуме.

Либо api секретный и нужно задавать вопросы его создателям напрямую

Либо в api где-то написано чёрным по белому "как скачать 100 тыс записей и НЕ делать мозг их серверу"
5 maxab72
 
22.09.25
14:19
(4) например на npchk.nalog.ru сервис проверки статусов контрагентов по ИНН на дату за раз обрабатывает только небольшой пакет, голов в 10000, ничего секретного, но и обходов, чтоб сразу все выкачать вроде не предусмотрено.
6 ptiz
 
22.09.25
14:47
(0) МДЛП ?
"как-то регулировать количество запросов к серверу" - вопрос непонятен. Если на стороне сервера ограничение - его не обойдешь.
7 программистище
 
22.09.25
15:16
Чем руководствуются люди задавая вопрос на форуме, если есть чей-то api и есть документация, нужно обратиться в компанию предоставляющую передачу данных по этому api
8 palsergeich
 
22.09.25
23:54
(7) да нормальный вопрос на подумать.
тем более получить то всего 1000 страниц, вендор решения не факт что быстрее ответит
9 1ctube
 
23.09.25
06:19
(8) Он кстати и не ответил до сих пор, по этому решил на форуме вопрос задать.
Пробовал подключить обработчик ожидания, та же петрушка(
10 Лодырь
 
23.09.25
06:23
Похожую штуку ставил при работе с ФГИС Зерно, простой счетчик и задержка между вызовами, если пока рановато стучаться. И медленно и верно все обрабатывается.
11 1ctube
 
23.09.25
07:14
(10) "задержка между вызовами" паузу реализовали?
12 Лодырь
 
23.09.25
08:20
(11) Да
13 1ctube
 
23.09.25
08:33
(12) После создания соединения?
14 mzelensky
 
23.09.25
09:26
(13) Если в рамках клиента:

делаешь обработчик ожидания на форме. Выставляешь срабатывание раз в 3 секунды. Далее делаешь вызов сервера в попытке. Если получил - ок, делаешь новый запрос. Если отвалилось, то обрабатываешь это попыткой и увеличиваешь ожидание +2 секунды к текущему. Снова пробуешь...отвалилось - еще +2 секунды. Снова попробовал - получилось, скидываешь ожидание к базовым 3 секундам.
15 mzelensky
 
23.09.25
09:27
В свое время таможенную базу так сканировали и анализировали.