moysklad-extension-queue
Расширение для библиотеки moysklad
Добавляет возможность котролировать поток запросов. Используется для избежания ошибки 429 при интенсивном обмене с API.
Установка
$ npm install moysklad-extension-queue
Использование
const MoyskladQueue = require('moysklad-extension-queue')
const MoyskladCore = require('moysklad')
const Moysklad = MoyskladCore.compose(MoyskladQueue)
const moysklad = Moysklad({
queue: true // включение очереди запросов
})
Очередь глобальная, т.е. для всех запросов всех экземпляров библиотеки в рамках приложения будет использоваться одна общая очередь.
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 будет общая очередь
Для каждого логина автоматически создается отдельная очередь.
const moysklad1 = Moysklad({
login: 'user1@account',
password: '****',
queue: true
})
const moysklad2 = Moysklad({
login: 'user2@account',
password: '****',
queue: true
})
// для moysklad1 и moysklad2 очереди будут разные
Настройка
Можно указать параметры очереди
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