Skip to content

MartyTiemFlyer/async_fastapi_image

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastAPI File Processing Service

Микросервис для загрузки и обработки файлов с использованием FastAPI, Celery и MySQL.

🚀 Технологии

  • FastAPI - веб-фреймворк
  • Celery - асинхронные задачи
  • MySQL - база данных
  • Redis - брокер сообщений и кэш
  • Docker - контейнеризация
  • Alembic - миграции БД

🛠 API Endpoints

Файлы

  • POST /files - Создать запись о файле
  • GET /files - Список файлов с пагинацией
  • PATCH /files/{id}/status - Обновить статус обработки
  • POST /upload-file - Загрузить файл

Текст

  • POST /text-analyze - Анализ текста в фоне
  • GET /task-status/{task_id} - Статус задачи Celery

🔧 Celery Tasks

  • process_image_task - обработка изображений (ресайз, оптимизация)
  • analyze_text_task - анализ текста (статистика, метрики)
  • test_task - тестовая задача для проверки работы

🐳 Запуск в Docker

# Сборка и запуск
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
  • Статус система для отслеживания обработки файлов

About

Микросервис для асинхронной обработки изображений

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors