Skip to content

Commit 3ecc2d6

Browse files
committed
docs: добавлено описание логики ограничителя запросов
1 parent 56d30af commit 3ecc2d6

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

readme.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,9 @@ ProductInfoDescriptionRequest
158158
Для prod значения параметров могут быть увеличены.
159159
"""
160160

161-
product_list_limit = 10 # Кол-во товаров, выгружаемых за одну итерацию
162-
consumers_amount = 5 # Кол-во потребителей, выгружающих описания
161+
product_list_limit = 10 # Кол-во товаров, выгружаемых за одну итерацию
162+
consumers_amount = 5 # Кол-во потребителей, выгружающих описания
163+
consumers_rps_max_limit = 6 # Максимальное кол-во запросов в секунду для каждого потребителя
163164
queue_max_size = product_list_limit * consumers_amount # Максимальный размер очереди
164165

165166
product_descriptions = list()
@@ -214,6 +215,8 @@ async def consumer(queue):
214215
config=SellerAPIConfig(
215216
# Понижаем уровень логирования
216217
log_level="INFO",
218+
# Ограничиваем кол-во запросов
219+
max_requests_per_second=consumers_rps_max_limit
217220
)
218221
) as api:
219222
while True:
@@ -306,8 +309,12 @@ config = SellerAPIConfig(
306309
)
307310
```
308311
**💡 Обратите внимание:**
309-
*50 запросов в сек. — суммарное ограничение на все выполняемые запросы от всех методов с одного client_id в единицу времени.*
310-
*При этом у многих методов есть свои ограничения, которые не описаны документацией и могут меняться Ozon в зависимости от нагрузки на сервера.*
312+
- *Общий ограничитель запросов определен в `SellerAPIConfig.max_requests_per_second` и может быть переопределен в `.env` `OZON_SELLER_MAX_REQUESTS_PER_SECOND`.*
313+
- *Помимо общего ограничителя можно задавать ограничители запросов для каждого инстанса SellerAPI с помощью `max_requests_per_second`.*
314+
- *Если кол-во запросов по всем инстансам одного `client_id` или `token` превысит значение общего ограничителя, то будет применен общий ограничитель.*
315+
- *50 запросов в сек. — определенное документацией суммарное ограничение на все выполняемые запросы от всех методов с одного `client_id` в единицу времени.*
316+
- *При этом у многих методов есть свои ограничения, которые не описаны документацией и могут меняться Ozon в зависимости от нагрузки на сервера.*
317+
- *25-27 запросов в сек. - оптимальное значение для ненагруженных API-запросами кабинетов (получено экпериментальным путем).*
311318

312319

313320
### Обработка ошибок и повторные попытки
@@ -335,9 +342,9 @@ config = SellerAPIConfig(
335342

336343
### Лимиты API
337344

338-
Проект автоматически соблюдает [официальные лимиты Ozon API](https://docs.ozon.ru/api/seller/), но рекомендуется:
339-
- Использовать консервативные настройки лимитов
340-
- Мониторить статистику использования через встроенные методы
345+
Проект автоматически соблюдает [официальные лимиты Ozon API](https://docs.ozon.ru/api/seller/), но рекомендуется использовать консервативные настройки лимитов (оптимально 25-27 запросов в сек. в сумме)
346+
347+
341348

342349
## 🔧 Разработка
343350

0 commit comments

Comments
 (0)