FastAPI Lifespan Manager
Project description
Fastapi LifespanManager
fastapi-lifespan-manager
is a Python library that provides a lifespan manager for FastAPI applications.
The LifespanManager
in fastapi-lifespan-manager
allows you to have multiple lifespan in one
application.
This library is particularly useful for managing background tasks, such as starting and stopping a database connection or managing a cache, as well as for performing cleanup tasks, such as closing open file handles or shutting down running processes.
To use fastapi-lifespan-manager
, simply install it via pip:
pip install fastapi-lifespan-manager
Usage Example:
from typing import AsyncIterator
from fastapi import FastAPI
from redis.asyncio import Redis
from sqlalchemy.ext.asyncio import create_async_engine
from fastapi_lifespan_manager import LifespanManager, State
manager = LifespanManager()
@manager.add
async def setup_db(app: FastAPI) -> AsyncIterator[State]:
engine = await create_async_engine("postgresql+asyncpg://user:password@localhost/db")
yield {"db": engine}
await engine.dispose()
@manager.add
async def setup_cache(app: FastAPI) -> AsyncIterator[State]:
redis = await Redis.from_url("redis://localhost:6379/0")
yield {"cache": redis}
await redis.close()
await redis.wait_closed()
app = FastAPI(lifespan=manager)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for fastapi_lifespan_manager-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 447ae6de3b324a561d8687672fcbb31e13f497a51890b4e53a29b32d0bdf10ac |
|
MD5 | c657589970d623ea54a32d98cc90495b |
|
BLAKE2b-256 | d98650f5cc1aae8a18d48e03290ce87da26e0dbf11f9719f7917cafb1edd7066 |
Close
Hashes for fastapi_lifespan_manager-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70f4477ddff438e28b52cd2917e339ff98fae8d95564213b622a6887edde86a8 |
|
MD5 | d9594345b028ff249a70743827430141 |
|
BLAKE2b-256 | f99459d262ed8da7c2d67915ccdee1897997af5a84eb4d16c407cd4aae19051c |