
Scheduler
Компонент поддерживает отложенную отправку данных в amoCRM через Scheduler от modmore. Это позволяет не задерживать ответ сервера при оформлении заказа или отправке формы.
Включение
- Установите компонент Scheduler
- Включите настройку amoconnector.use_scheduler
- Настройте cron для запуска Scheduler:
* * * * * php /path/to/site/assets/components/scheduler/run.phpПринцип работы
При включенном Scheduler обработка заказов и форм происходит в два этапа:
- При событии (создание заказа, отправка формы, смена статуса) — данные помещаются в очередь Scheduler
- При запуске cron — Scheduler выполняет задачу, данные отправляются в amoCRM
Задачи создаются автоматически при первом обращении:
| Задача | Файл | Описание |
|---|---|---|
amoconnector_new_order | tasks/sendNewOrder.php | Отправка нового заказа |
amoconnector_order_status | tasks/sendOrderStatus.php | Смена статуса заказа |
amoconnector_form_submission | tasks/sendFormSubmission.php | Отправка данных формы |
Graceful degradation
Если Scheduler включен в настройках, но не установлен — компонент автоматически переключается на синхронную отправку. В лог MODX записывается предупреждение.
Оптимизация
Компонент избегает бесполезных задач:
- При создании заказа планируется только отправка заказа. Начальный статус не планируется отдельно
- Смена статуса планируется только если для нового статуса существует маппинг в amoCRM и заказ связан со сделкой
Webhook
Входящие webhook от amoCRM всегда обрабатываются синхронно, независимо от настройки Scheduler. Webhook — это server-to-server запрос, не влияющий на UX пользователей сайта.
