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

Зачем нужны ограничения?
Ограничения веб-хуков предотвращают перегрузку сервера при массовых операциях в МойСклад и обеспечивают стабильную работу модуля.
Правильная настройка ограничений критически важна для производительности и стабильности работы сайта.
Настройки ограничений
1. Максимальное количество обрабатываемых сущностей за один веб-хук
Значения: 5, 10, 15, 20, 25. По умолчанию: 5.
Что это означает:
- При массовом редактировании в МойСклад один веб-хук может содержать данные о множестве сущностей — заказов, оплат, отгрузок
- Данная настройка ограничивает количество сущностей, которые модуль обработает сразу при получении веб-хука
- Между сущностями модуль делает паузу 200 миллисекунд, а при упоре в лимиты API МойСклад дополнительно сам увеличивает интервалы между запросами
Когда применяется:
- Массовое изменение статусов заказов
- Групповое редактирование заказов или оплат в МойСклад
- Импорт большого количества заказов
Если в веб-хуке пришло больше сущностей, чем указано в ограничении, модуль обработает сразу только указанное количество, а остальные добавит в очередь задач — их обработает агент (см. следующую настройку).
Например, вы массово отредактировали 20 заказов, а в ограничении указано 10: первые 10 заказов будут обработаны сразу, остальные 10 — агентом очереди.
Ограничение относится только к сущностям, которые обрабатываются моментально. Сущности веб-хуков с типом выполнения «Выполнять отложенно в очереди» сразу уходят в очередь, а в смешанном режиме сразу обрабатывается только первая сущность. Подробнее — Тип выполнения веб-хука.
2. Максимальное количество обрабатываемых задач за один шаг
Опция доступна с версии 3.0.0 и выше. В этой версии реализован функционал очереди задач для выполнения веб-хуков.
Значения: от 10 до 50 с шагом 5. По умолчанию: 20.
Что это означает:
- Количество задач из очереди веб-хуков, обрабатываемых за одно выполнение
- Одно выполнение — это один запуск агента очереди веб-хуков. Агент запускается с интервалом из опции «Интервал срабатывания агентов (сек)» во вкладке Прочее (по умолчанию 60 секунд, то есть раз в минуту). Фактическая частота зависит также от того, как на сайте выполняются агенты (на хитах или через cron)
Принцип работы:
- Веб-хук получен → задачи добавляются в очередь
- Агент запускается → обрабатывает указанное количество задач, начиная с самых ранних
- Следующий запуск → обрабатывает следующую порцию задач
Особенности очереди:
- Если за один шаг в очереди оказалось несколько задач по одной и той же сущности МойСклад, она обрабатывается один раз, остальные задачи пропускаются — актуальные данные модуль всё равно получает из МойСклад в момент обработки
- Если задачу не удалось выполнить из-за сбоя, модуль повторит её на следующем шаге, всего до 2 попыток. Ошибки обмена по самой сущности (например, заказ не найден на сайте) пишутся в журнал и не повторяются
- Завершённые задачи удаляются из очереди
- Итог каждого шага пишется в журнал модуля
Рекомендуемые значения:
- Небольшая нагрузка: 10-15 задач
- Средняя нагрузка: 20-30 задач
- Высокая нагрузка: 30-50 задач
Слишком большое значение может вызвать превышение лимитов времени выполнения PHP-скрипта. Слишком маленькое — замедлит обработку очереди.