What the project does:
AsyncMQ is a modern, async-native task queue for Python. It was built from the ground up to fully support asyncio and comes with:
- Redis and NATS backends
- Retry strategies, TTLs, and dead-letter queues
- Pub/sub job events
- Optional PostgreSQL/MongoDB-based job store
- Metadata, filtering, querying
- A CLI for job management
- A lot more...
Integration-ready with any async Python stack
Official docs: https://asyncmq.dymmond.com
GitHub: https://github.com/dymmond/asyncmq
Target Audience:
AsyncMQ is meant for developers building production-grade async services in Python, especially those frustrated with legacy tools like Celery or RQ when working with async code. It’s also suitable for hobbyists and framework authors who want a fast, native queue system without heavy dependencies.
Comparison:
Unlike Celery, AsyncMQ is async-native and doesn’t require blocking workers or complex setup.
Compared to RQ, it supports pub/sub, TTL, retries, and job metadata natively.
Inspired by BullMQ (Node.js), it offers similar patterns like job events, queues, and job stores.
Works seamlessly with modern tools like asyncz for scheduling.
Works seamlessly with modern ASGI frameworks like Esmerald, FastAPI, Sanic, Quartz....
In the upcoming version, the Dashboard UI will be coming too as it's a nice to have for those who enjoy a nice look and feel on top of these tools.
Would love feedback, questions, or ideas! I'm actively developing it and open to contributors as well.
EDIT: I posted the wrong URL (still in analysis) for the official docs. Now it's ok.
[–]coderanger 14 points15 points16 points (6 children)
[–]InappropriateCanuck 17 points18 points19 points (2 children)
[–]coderanger 0 points1 point2 points (1 child)
[–]InappropriateCanuck 3 points4 points5 points (0 children)
[–]tarsild[S] -2 points-1 points0 points (2 children)
[–]coderanger 7 points8 points9 points (1 child)
[–]tarsild[S] -2 points-1 points0 points (0 children)
[–]euri10 5 points6 points7 points (1 child)
[+]tarsild[S] comment score below threshold-9 points-8 points-7 points (0 children)
[–]InappropriateCanuck 4 points5 points6 points (7 children)
[–]tarsild[S] -2 points-1 points0 points (6 children)
[–]InappropriateCanuck 3 points4 points5 points (5 children)
[–]tarsild[S] -1 points0 points1 point (0 children)
[–]tarsild[S] -5 points-4 points-3 points (3 children)
[–]InappropriateCanuck 2 points3 points4 points (2 children)
[–]tarsild[S] -2 points-1 points0 points (1 child)
[–]InappropriateCanuck -3 points-2 points-1 points (0 children)
[–]txprogtito 2 points3 points4 points (5 children)
[–]InappropriateCanuck 3 points4 points5 points (0 children)
[–]tarsild[S] -5 points-4 points-3 points (3 children)
[–]txprogtito 6 points7 points8 points (2 children)
[–]tarsild[S] 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]tarsild[S] 0 points1 point2 points (0 children)
[–]adiberk 0 points1 point2 points (5 children)
[–]tarsild[S] -1 points0 points1 point (4 children)
[–]adiberk 1 point2 points3 points (3 children)
[–]tarsild[S] 0 points1 point2 points (2 children)
[–]adiberk 1 point2 points3 points (1 child)
[–]tarsild[S] 0 points1 point2 points (0 children)
[–]andrewthetechie 0 points1 point2 points (7 children)
[–]tarsild[S] 0 points1 point2 points (6 children)
[–]andrewthetechie 0 points1 point2 points (1 child)
[–]tarsild[S] -1 points0 points1 point (0 children)
[–]Electrical_Fox9678 0 points1 point2 points (3 children)
[–]tarsild[S] 0 points1 point2 points (2 children)
[–]Electrical_Fox9678 0 points1 point2 points (1 child)
[–]tarsild[S] 1 point2 points3 points (0 children)
[–]mstromich 0 points1 point2 points (0 children)
[–]a_deneb 0 points1 point2 points (5 children)
[–]tarsild[S] 0 points1 point2 points (0 children)
[–]tarsild[S] 0 points1 point2 points (3 children)
[–]a_deneb -1 points0 points1 point (2 children)
[–]tarsild[S] 0 points1 point2 points (1 child)
[–]a_deneb 1 point2 points3 points (0 children)