Техническое задание: Миграция на систему очередей заданий
Существующее решение использует несколько cron-скриптов для выполнения фоновых задач. Цель проекта - перенести эту логику на современный и надежный движок очередей, обеспечив отказоустойчивость, мониторинг и удобство управления.
Основные задачи
- Проанализировать и адаптировать 3 существующих фоновых скрипта для работы в рамках выбранного queue-движка.
- Реализовать механизм повторных попыток (retry) с экспоненциальной задержкой (backoff) для обработки временных сбоев.
- Настроить мертвую очередь (Dead Letter Queue, DLQ) для задач, которые не удалось выполнить после всех попыток.
- Внедрить сбор метрик выполнения: статус (успех/ошибка), время выполнения задачи.
- Разработать набор консольных команд для ручного управления задачами (например, принудительный запуск, просмотр очереди, очистка).
Требования к реализации
- Выбор конкретного queue-движка (например, RabbitMQ, Redis, Beanstalkd, Laravel Queues и т.д.) остается на усмотрение исполнителя, но должен быть обоснован.
- Система должна обеспечивать надежное выполнение задач и их сохранение при перезапуске сервиса.
- Архитектура должна позволять легко добавлять новые типы фоновых задач в будущем.
- Документация по развертыванию и использованию системы.
Результат работы
- Полностью функционирующая система очередей, заменяющая старые cron-скрипты.
- Инструменты для мониторинга состояния очередей и задач.
- Консольные команды для административного управления.
- Инструкция по миграции и дальнейшей поддержке.