UNPKG

moysklad-extension-queue

Version:

Очередь http запросов (расширение для библиотеки moysklad)

87 lines (64 loc) 2.73 kB
moysklad-extension-queue ------------------------ > Расширение для библиотеки [moysklad](https://github.com/wmakeev/moysklad) Добавляет возможность котролировать поток запросов. Используется для избежания ошибки 429 при интенсивном обмене с API. ## Установка ``` $ npm install moysklad-extension-queue ``` ## Использование ```js const MoyskladQueue = require('moysklad-extension-queue') const MoyskladCore = require('moysklad') const Moysklad = MoyskladCore.compose(MoyskladQueue) const moysklad = Moysklad({ queue: true // включение очереди запросов }) ``` Очередь глобальная, т.е. для всех запросов всех экземпляров библиотеки в рамках приложения будет использоваться одна общая очередь. ```js const Moysklad = MoyskladCore.compose(MoyskladQueue) const moysklad1 = Moysklad({ queue: true }) const moysklad2 = Moysklad({ queue: true }) const moysklad3 = MoyskladCore.compose(MoyskladQueue).create({ queue: true }) // для moysklad1, moysklad2 и moysklad3 будет общая очередь ``` Для каждого логина автоматически создается отдельная очередь. ```js const moysklad1 = Moysklad({ login: 'user1@account', password: '****', queue: true }) const moysklad2 = Moysklad({ login: 'user2@account', password: '****', queue: true }) // для moysklad1 и moysklad2 очереди будут разные ``` ## Настройка Можно указать параметры очереди ```js const moysklad = Moysklad({ queue: { period: 5500, tasksPerPeriod: 100, parallelTasks: 50 } }) ``` Параметр | Ограничение МойСклад | По умолчанию | Описание ---------|----------------------|--------------|--------- `period` | 3000 | 3100 | период (мс) на который ставится ограничение по максимальному кол-ву запросов `tasksPerPeriod` | 45 | 44 | максимальное кол-во запросов за период `period` `parallelTasks` | 5 | 5 | максимальное кол-во параллельных запросов Или в глобальных переменных ``` MOYSKLAD_QUEUE_PERIOD_MS=3000 MOYSKLAD_QUEUE_PERIOD_TASKS=45 MOYSKLAD_QUEUE_PARALLEL_TASKS=5 ``` [Официальная информация по лимитам](https://online.moysklad.ru/api/remap/1.1/doc/#header-ограничения)