Модуль: Shop / Celery
Версия: 1.0
Дата: Январь 2026
6.1 Обзор задач
Назначение
Celery в модуле Shop обеспечивает:- Периодический polling событий из WooCommerce (каждую минуту)
- Детектирование новых заказов, отмен, возвратов
- Генерацию уведомлений через Notifications
Реестр задач
| Задача | Тип | Периодичность | Описание |
|---|---|---|---|
shop.poll_orders | periodic | */1 * * * * | Проверка новых событий |
shop.send_notification | async | по событию | Отправка уведомления |
Архитектура
6.2 Task: poll_orders
Назначение
Периодическая проверка WooCommerce на наличие новых событий:- Новые заказы (статус
processing) - Отмены (статус
cancelled) - Возвраты (статус
refunded) - Ошибки оплаты (статус
failed)
Конфигурация
Реализация
Диаграмма процесса
6.3 Task: send_notification
Назначение
Асинхронная отправка уведомления через систему Notifications.Реализация
6.4 MCP Client для Celery
Реализация
6.5 Redis State Management
Ключи Redis
| Ключ | Тип | Описание | TTL |
|---|---|---|---|
shop:polling:last_poll_time | string | Время последнего polling | — |
shop:polling:known_orders | hash | Известные статусы заказов | 7 дней |
Операции
6.6 Конфигурация
Environment Variables
Celery Configuration
6.7 Обработка ошибок
Retry стратегия
Типы ошибок
| Ошибка | Действие | Max Retries |
|---|---|---|
| ConnectionError | Retry с backoff | 3 |
| TimeoutError | Retry с backoff | 3 |
| AuthenticationError | Логирование, алерт админу | 0 |
| RateLimitError | Retry через 60 сек | 3 |
Логирование ошибок
6.8 Мониторинг
Метрики
| Метрика | Тип | Описание |
|---|---|---|
shop_poll_duration_seconds | histogram | Время выполнения polling |
shop_poll_orders_count | counter | Количество обработанных заказов |
shop_poll_errors_total | counter | Количество ошибок |
shop_notifications_sent | counter | Отправленные уведомления |
Prometheus метрики
Health Check
6.9 Управление задачами
Запуск Celery
Docker Compose
Ручной запуск задачи
Приложение А: Контрольные точки
| Критерий | Проверка |
|---|---|
| Beat работает | Задачи появляются в очереди каждую минуту |
| Worker работает | Задачи обрабатываются |
| Polling работает | last_poll_time обновляется |
| Уведомления | События создают notifications |
| Retry работает | Ошибки не приводят к потере событий |
Приложение Б: Troubleshooting
Polling не запускается
Уведомления не приходят
Ошибки MCP
Документ подготовлен: Январь 2026
Версия: 1.0
Статус: Черновик