moysklad-extension-queue
Version:
Очередь http запросов (расширение для библиотеки moysklad)
87 lines (64 loc) • 2.73 kB
Markdown
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-ограничения)