{"repo":"tastyware/streaq","free":true,"listed":false,"github":"https://github.com/tastyware/streaq","clone":"git clone https://github.com/tastyware/streaq.git","description":"Fast, async, fully-typed distributed task queue via Redis streams","language":"Python","stars":159,"topics":["anyio","asyncio","distributed-systems","redis","task-queue","trio","typed","fastapi"],"license":"MIT","category":"databases-storage","readme_excerpt":"streaQ Fast, async, fully-typed distributed task queue via Redis streams Features - Up to 5x faster than arq - Fully typed - Comprehensive documentation - Support for delayed/scheduled tasks - Cron jobs - Task middleware - Task dependency graph - Pipelining - Priority queues - Support for synchronous tasks (run in separate threads) - Redis Sentinel & Cluster support for production - Built-in web UI for monitoring tasks - Built with structured concurrency on anyio , supports both asyncio and trio [!TIP] Sick of redis-py ? Check out coredis, a fast, fully-typed Redis client that supports Trio! Installation Getting started To start, you'll need to create a Worker object: You can then register async tasks with the worker like this: Finally, let's use the worker's async context manager to queue up some tasks: Putting this all together gives us example.py. Let's spin up a worker: and queue up some tasks like so: Let's see what the output looks like: For more examples, check out the documentation.","default_branch":null,"files":null,"tree":[],"storefront":"/r/tastyware","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tastyware/streaq/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}