// the find
wakatime/wakaq
Background task queue for Python backed by Redis, a super minimal Celery
WakaQ is a Redis-backed background task queue for Python that strips Celery down to its useful core: priority queues, ETA tasks, cron scheduling, soft/hard timeouts, and broadcast tasks. It runs in production at WakaTime and has a TypeScript sibling that speaks the same Redis protocol, letting you enqueue from Python and consume from Node or vice versa. If you need Celery's full feature set, this isn't it — that's a stated design goal, not an oversight.
The polyglot protocol is genuinely useful — cross-language task queues usually require a shared message format spec and two separate implementations that drift; here it's intentional and maintained by the same team. The codebase is small enough (~10 files) that you can read it in an afternoon and actually understand what happens on a soft timeout or a worker OOM. Memory leak mitigation via `max_mem_percent` and `max_tasks_per_worker` is a practical detail that most minimal queues skip. `wrap_tasks_with` gives you a single injection point for app context (Flask/Django app context, tracing, etc.) without bolting on a middleware system.
596 stars and 21 forks after 4 years in production at a real company suggests limited adoption outside WakaTime — you're taking on a queue with a tiny community and no ecosystem of plugins or battle-tested third-party integrations. ETA task deduplication is automatic and non-optional (same args = same slot in the sorted set), which will surprise you the first time you try to enqueue the same task twice with identical arguments. There's no result backend — if you need task return values or status polling, you're building that yourself on top. The mock pattern shown for tests is a hand-rolled fake that won't catch serialization bugs or queue routing errors.