База знаний EMS-платформы PlatParts Руководство по настройке EMS-платформы PlatParts

Очереди и надёжность

На этой странице 8

Очереди, повторы и надёжность

Интеграции не блокируют HTTP ответа покупателю.

Очереди платформы

INTEGRATION_DEDICATED_QUEUES в .envconfig/integrations.php по умолчанию true):

Очередь Задачи
integrations.{packageCode} DispatchModuleHookListener, inbound
integrations.outbound POST на внешние URL

При false хуки платформы уходят в INTEGRATION_DEFAULT_QUEUE (default) — на проде не рекомендуется: конкуренция с синком и прайсами.

Jobs внутри модуля

Модуль может выбирать очередь самостоятельно для своих внутренних jobs.

Типовой подход такой:

Сценарий Очередь
Платформенные hooks и inbound integrations.{Code}
Внешние POST на URL integrations.outbound
Внутренние тяжёлые jobs самого модуля отдельная очередь модуля или default, если это осознанное решение

Supervisor

ini
[program:zapex-integrations]
command=/usr/bin/php /var/www/zapex/artisan queue:work \
  --queue=integrations.outbound,integrations.MyCrm \
  --sleep=3 --tries=3
numprocs=1

После деплоя: php artisan queue:restart.

Внимание

На shared не делайте supervisorctl restart all — только queue:restart от пользователя сайта.

Cron

  • integrations:licenses:verify
  • integrations:hook-deliveries:prune
cron
* * * * * cd /var/www/zapex && php artisan schedule:run

Журнал

Модули интеграций → Очередь хуков модулей

Статус Значение
pending Ждёт воркера
processing В работе
completed Успех
failed Исчерпаны попытки
bash
php artisan integrations:hook-deliveries:prune --completed-days=60

Повторы и защита

  • Handler: до 5 попыток, timeout 120 с;
  • circuit breaker на пакет;
  • rate limit / backpressure — см. Архитектура.

Нагрузка

1 модуль, outbound + handler, order.created + user.registered:

Событие Jobs ≈
10 заказов 20
20 регистраций 40

При numprocs=1 очередь может расти 1–2 минуты — нормально.

Связанные разделы