0.2.1 • Published 4 years ago

moysklad-extension-queue v0.2.1

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

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
  }
})
ПараметрОграничение МойСкладПо умолчаниюОписание
period30003100период (мс) на который ставится ограничение по максимальному кол-ву запросов
tasksPerPeriod4544максимальное кол-во запросов за период period
parallelTasks55максимальное кол-во параллельных запросов

Или в глобальных переменных

MOYSKLAD_QUEUE_PERIOD_MS=3000
MOYSKLAD_QUEUE_PERIOD_TASKS=45
MOYSKLAD_QUEUE_PARALLEL_TASKS=5

Официальная информация по лимитам