A Flask/Quart extension for background job processing using Redis Queue (RQ).
Flask-RQ is a Flask and Quart extension that integrates Redis Queue (RQ) for background job processing in Python web applications. It allows developers to queue long-running functions to run in separate worker processes, preventing them from blocking the main web application and ensuring fast response times. The extension handles RQ configuration using Flask's config system and executes jobs within the application context so services like database connections remain available.
Python web developers using Flask or Quart who need to offload time-consuming tasks like sending emails, processing uploads, or generating reports to background workers without blocking their web application's responsiveness.
Developers choose Flask-RQ because it provides a simple, well-integrated way to add background job processing to Flask/Quart apps using the popular RQ library, with built-in application context support and seamless configuration through Flask's existing config system.
RQ (Redis Queue) integration for Flask and Quart applications.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Flask's configuration system and works seamlessly with both Flask and Quart, minimizing setup overhead as shown in the example config.
Ensures jobs run with the full application context, making database sessions and Flask services like 'g' available without manual handling.
Adds a 'flask rq worker' command directly to Flask's CLI, simplifying worker process management and deployment.
Part of the Pallets ecosystem, ensuring ongoing maintenance and compatibility with Flask/Quart updates, as noted in the README.
Ties the application to Redis for queue storage, adding infrastructure complexity and a potential single point of failure for projects not already using Redis.
Compared to alternatives like Celery, Flask-RQ lacks built-in support for complex task workflows, advanced retry policies, and extensive monitoring tools.
RQ's design prioritizes simplicity over high performance, making Flask-RQ less suitable for applications with massive job throughput or real-time processing demands.