Перейти к основному содержимому

Ограничения веб-хуков

Настройки ограничений веб-хуков

Зачем нужны ограничения?​

Ограничения веб-хуков предотвращают перегрузку сервера при массовых операциях в МойСклад и обеспечивают стабильную работу модуля.

Важность настройки

Правильная настройка ограничений критически важна для производительности и стабильности работы сайта.

Настройки ограничений​

1. Максимальное количество обрабатываемых сущностей за один веб-хук​

Значения: 5, 10, 15, 20, 25. По умолчанию: 5.

Что это означает:

  • При массовом редактировании в МойСклад один веб-хук может содержать данные о множестве сущностей — заказов, оплат, отгрузок
  • Данная настройка ограничивает количество сущностей, которые модуль обработает сразу при получении веб-хука
  • Между сущностями модуль делает паузу 200 миллисекунд, а при упоре в лимиты API МойСклад дополнительно сам увеличивает интервалы между запросами

Когда применяется:

  • Массовое изменение статусов заказов
  • Групповое редактирование заказов или оплат в МойСклад
  • Импорт большого количества заказов
Принцип работы

Если в веб-хуке пришло больше сущностей, чем указано в ограничении, модуль обработает сразу только указанное количество, а остальные добавит в очередь задач — их обработает агент (см. следующую настройку).

Например, вы массово отредактировали 20 заказов, а в ограничении указано 10: первые 10 заказов будут обработаны сразу, остальные 10 — агентом очереди.

примечание

Ограничение относится только к сущностям, которые обрабатываются моментально. Сущности веб-хуков с типом выполнения «Выполнять отложенно в очереди» сразу уходят в очередь, а в смешанном режиме сразу обрабатывается только первая сущность. Подробнее — Тип выполнения веб-хука.

2. Максимальное количество обрабатываемых задач за один шаг​

Доступность функции

Опция доступна с версии 3.0.0 и выше. В этой версии реализован функционал очереди задач для выполнения веб-хуков.

Значения: от 10 до 50 с шагом 5. По умолчанию: 20.

Что это означает:

  • Количество задач из очереди веб-хуков, обрабатываемых за одно выполнение
  • Одно выполнение — это один запуск агента очереди веб-хуков. Агент запускается с интервалом из опции «Интервал срабатывания агентов (сек)» во вкладке Прочее (по умолчанию 60 секунд, то есть раз в минуту). Фактическая частота зависит также от того, как на сайте выполняются агенты (на хитах или через cron)

Принцип работы:

  1. Веб-хук получен → задачи добавляются в очередь
  2. Агент запускается → обрабатывает указанное количество задач, начиная с самых ранних
  3. Следующий запуск → обрабатывает следующую порцию задач

Особенности очереди:

  • Если за один шаг в очереди оказалось несколько задач по одной и той же сущности МойСклад, она обрабатывается один раз, остальные задачи пропускаются — актуальные данные модуль всё равно получает из МойСклад в момент обработки
  • Если задачу не удалось выполнить из-за сбоя, модуль повторит её на следующем шаге, всего до 2 попыток. Ошибки обмена по самой сущности (например, заказ не найден на сайте) пишутся в журнал и не повторяются
  • Завершённые задачи удаляются из очереди
  • Итог каждого шага пишется в журнал модуля

Рекомендуемые значения:

  • Небольшая нагрузка: 10-15 задач
  • Средняя нагрузка: 20-30 задач
  • Высокая нагрузка: 30-50 задач
Важно учесть

Слишком большое значение может вызвать превышение лимитов времени выполнения PHP-скрипта. Слишком маленькое — замедлит обработку очереди.