Skip to content

v0.7.0

Latest

Choose a tag to compare

@KiowDev KiowDev released this 07 Aug 07:50
Immutable release. Only release title and notes can be modified.

Rate limiting

  • Маршруты итд.com разбиты на бакеты — группы маршрутов со своим счётчиком запросов в минуту. Раньше клиент считал лимит один на весь сайт, и исчерпанная квота на публикацию постов тормозила заодно чтение ленты. Теперь у каждого бакета своя очередь и своя пауза, а общее число одновременных запросов по-прежнему задаёт concurrency.

  • Новая опция pacing решает, что делать с остатком квоты. react (по умолчанию) ждёт, только когда остаток кончился, smooth заранее держит ровный темп, off отключает подстройку. Опция заменила respectHeaders.

  • Лимиты отдельных бакетов можно поправить через bucketOverrides, а itd.request() — направить в нужный бакет опцией rateLimitBucket.

  • itd.rateLimitState() показывает остаток квоты по каждому бакету — сколько запросов ещё можно отправить и сколько ждёт в очереди.

  • Несколько аккаунтов по умолчанию встают в одну очередь: лимиты считаются по IP, а не по аккаунту. Прежнее поведение возвращает rateLimitScope: 'account'.

Несовместимые изменения

  • rateLimit.respectHeaders удалён: прежнее true — это pacing: 'react', прежнее falsepacing: 'off'.
  • Умолчание rateLimitScope изменено с 'account' на 'shared'.

Таблица бакетов и настройки — в новом разделе справочника «Ограничения частоты».

Full Changelog: v0.6.0...v0.7.0