Проект представляет собой легкую, отказоустойчивую систему для управления фоновыми задачами. Реализованы основные функции: создание задач, получение их статуса, обработка в параллельном режиме и перезапуск невыполненных задач. Приложение успешно интегрировано с базой данных PostgreSQL и запускается в Docker-контейнерах.
-
Создание задачи:
- Endpoint: POST /jobs
- Функционал: пользователь может добавить задачу в очередь, указав её имя и данные в формате JSON.
- Хранимые параметры: идентификатор задачи (id), имя (name), данные (data), статус (status), приоритет (priority), временные метки создания (created_at) и обновления (updated_at).
-
Получение статуса задачи:
- Endpoint: GET /jobs/{id}
- Функционал: пользователь может запросить текущий статус задачи по её идентификатору.
-
Обработка задач:
- Реализованы несколько воркеров для параллельной обработки задач.
- Перезапуск невыполненных задач (например, при возникновении ошибки или таймаута).
-
Гибкая настройка:
- Настройка таймаутов, количества повторных попыток выполнения задачи (retries) и пауз между попытками.
- Максимальное время выполнения задачи: 3 секунды.
-
Запуск системы:
- Система запускается в Docker-контейнерах с использованием docker-compose.