WakaQ

Background task queue for Python backed by Redis, a super minimal Celery.
Read about the motivation behind this project on [this blog post][blog launch] and the accompanying [Hacker News discussion][hacker news].
WakaQ is currently used in production at [WakaTime.com][wakatime].
WakaQ is also available in [TypeScript][wakaq-ts].
Features
- Queue priority
- Delayed tasks (run tasks after a timedelta eta)
- Scheduled periodic tasks
- Tasks can be [async][asyncio] or normal synchronous functions
- [Broadcast][broadcast] a task to all workers
- Task [soft][soft timeout] and [hard][hard timeout] timeout limits
- Optionally retry tasks on soft timeout
- Combat memory leaks with
max_mem_percent or max_tasks_per_worker
- Super minimal
Want more features like rate limiting, task deduplication, etc? Too bad, feature PRs are not accepted. Maximal features belong in your app’s worker tasks.
Installing
pip install wakaq
Using
[wakatime]: https://wakatime.com
[broadcast]: https://github.com/wakatime/wakaq/blob/58a7e4ce29d9be928b16ffbf5c00c7106aab9360/wakaq/task.py#L65
[wakaq-ts]: https://github.com/wakatime/wakaq-ts
[asyncio]: https://docs.python.org/3/library/asyncio.html