Микросервис для загрузки и обработки файлов с использованием FastAPI, Celery и MySQL.
- FastAPI - веб-фреймворк
- Celery - асинхронные задачи
- MySQL - база данных
- Redis - брокер сообщений и кэш
- Docker - контейнеризация
- Alembic - миграции БД
POST /files- Создать запись о файлеGET /files- Список файлов с пагинациейPATCH /files/{id}/status- Обновить статус обработкиPOST /upload-file- Загрузить файл
POST /text-analyze- Анализ текста в фонеGET /task-status/{task_id}- Статус задачи Celery
process_image_task- обработка изображений (ресайз, оптимизация)analyze_text_task- анализ текста (статистика, метрики)test_task- тестовая задача для проверки работы
# Сборка и запуск
docker-compose up --build
# Только отдельные сервисы
docker-compose up mysql redis web workerПриложение будет доступно по http://localhost:8000
# Установка зависимостей
pip install -r requirements.txt
# Запуск Redis
redis-server
# Запуск воркера
celery -A app.src.worker worker --loglevel=info
# Запуск приложения
uvicorn app.src.main:app --reload
# миграции БД
alembic upgrade head- Dependency Injection для работы с БД
- Celery Worker для фоновых задач
- Docker с полным стеком (FastAPI + MySQL + Redis)
- Alembic для миграций БД
- Пагинация и валидация в API
- Автодокументация Swagger/ReDoc
- Статус система для отслеживания обработки файлов