Skip to content

AlexanderPAI/fastapi_backgrounds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Простой пример использования FastAPI BackgroundTasks

Описание

Технологический стек:

python    3.13
poetry    2.2.1
fastapi   0.120.3
uvicorn   0.38.0

Pre-commit-hooks использовать необязательно (достаточно просто не выполнять в терминале pre-commit install)

Pre-commit-hooks:

trailing-whitespace
end-of-file-fixer
check-yaml
check-added-large-files
flake8                     7.1.1
isort                      5.13.2
black                      24.10.0
poetry-check
poetry-lock

Весь код логики в /src/app.py

Фейковая функция process_task, которая имитируем какое-то время исполнения бизнес-задачи (по умолчанию sleep - 20 сек)

Эндпоинты:

/create_task - принимает какое-либо сообщение, создает задачу и возвращает uuid задачи отправленной в фон

/get_task_result/{task_id} - проверяет статус задачи task in progress или ready. Если статус задачи ready, возвращает доп. поле result с результатом выполнения (в данном примере в качестве результата возвращается "message": "[первоначальное сообщение]" )

Запуск

Запуск в docker-контейнере

docker compose up --build

Запуск без docker-контейнера

Создаем вирутальное и активируем окружение

# Windows
python -m venv venv
.\venv\Script\activate

# Linux/MacOS
python3 -m venv venv
source /venv/bin/activate

Устанавливаем poetry

pip install poetry==2.2.1

Устанавливаем зависимости

poetry install

Запускаем приложение

python -m src.app

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors