A minimal example demonstrating how to integrate FastAPI with Celery using RabbitMQ and Redis for asynchronous task processing.
FastAPI-Celery is a minimal example project that demonstrates how to integrate FastAPI with Celery to handle asynchronous background tasks. It uses RabbitMQ as a message broker, Redis for storing task results, and Flower for monitoring, providing a complete reference architecture for building scalable web applications with task queues.
Backend developers and engineers building Python web applications with FastAPI who need to offload long-running or resource-intensive tasks to background workers.
It offers a production-ready, easy-to-understand example that eliminates the guesswork of setting up FastAPI with Celery, including Docker configurations for all required services, making it ideal for learning or as a foundation for real projects.
Minimal example utilizing fastapi and celery with RabbitMQ for task queue, Redis for celery backend and flower for monitoring the celery tasks.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a minimal yet complete example with Docker Compose for all services, offering a scalable reference architecture as highlighted in the README's one-command setup.
Includes pre-configured Docker services (RabbitMQ, Redis, Flower) that start with a single command, simplifying environment setup for testing and learning.
Comes with Flower for real-time task and worker monitoring, accessible via a web dashboard with login credentials provided in the README.
The README details both Docker and non-Docker setups with specific commands, making it accessible for developers to adapt.
Only demonstrates basic task enqueueing; real-world use requires adding error handling, task prioritization, and complex workflows not covered.
Relies on RabbitMQ and Redis, which need separate management in production, increasing operational overhead beyond the example.
Uses Poetry for dependency management, which may not align with teams accustomed to pip or other tools, adding a learning curve.