Freedom251 › Task Queue Software
WakaQ

What WakaQ is
WakaQ is a free, open-source, self-hosted background task queue for Python. It uses Redis and is described as a minimal Celery alternative. Tasks may run synchronously or asynchronously, with queue priorities, delayed execution, periodic schedules, and broadcasting to every worker. Soft and hard timeout limits are available, with optional retries after soft timeouts. Worker processes can be restarted according to machine memory usage or the number of tasks processed. WakaQ shares a Redis queue protocol with WakaQ-TS, allowing Python and TypeScript services to enqueue or run tasks across languages. Installation uses `pip install wakaq`, and the README includes a systemd service example for running workers as daemons. Development and tests can mock WakaQ to run tasks synchronously without Redis or worker processes. The project says it has powered WakaTime background processing since 2022 and uses the BSD-3-Clause license. Maintainers do not accept feature pull requests and specifically list rate limiting and task deduplication among unsupported features.
Who it suits
WakaQ suits developers who need a self-hosted Redis-backed queue for Python tasks, including scheduled, delayed, prioritized, or retried work. Its shared protocol also fits systems combining Python and TypeScript services.
What it does well
- Free and open source
- Supports synchronous and asynchronous tasks
- Provides delayed and periodic scheduling
- Offers timeout and retry controls
- Works across Python and TypeScript services
What to know first
- Self-hosted deployment required
- No rate limiting feature
- No task deduplication feature
- Feature pull requests are not accepted
Verdict
WakaQ provides focused queueing for Python with scheduling, priorities, retries, and worker controls. Its self-hosted model and stated feature limits matter for teams needing managed operations or advanced queue policies.
Facts from WakaQ's own pages
- Deployment
- The README provides an example systemd service configuration for running a WakaQ worker as a daemon. · github.com, 9 Oct 2026
- Development and testing
- The README describes mocking WakaQ to run tasks synchronously in development or tests without Redis or worker processes. · github.com, 10 Oct 2026
- Feature scope
- The maintainers say feature pull requests are not accepted and cite rate limiting and task deduplication as examples of features they do not intend to add. · github.com, 10 Oct 2026
- Founded
- 2013 · github.com, 28 Sept 2026
- Headquarters
- San Francisco · github.com, 28 Sept 2026
- Installation
- The README gives `pip install wakaq` as the installation command. · github.com, 9 Oct 2026
- Installation and deployment
- The README shows installation with pip and an example of running a worker as a systemd daemon. · github.com, 10 Oct 2026
- Language integration
- WakaQ and its TypeScript counterpart share a Redis queue protocol, allowing Python and Node services to enqueue and run each other’s tasks. · github.com, 9 Oct 2026
- Language interoperability
- WakaQ and WakaQ-TS use the same Redis queue protocol, allowing Python and TypeScript services to enqueue or run tasks across languages. · github.com, 10 Oct 2026
- License
- The repository identifies its license as BSD-3-Clause. · github.com, 10 Oct 2026
- Limitations
- The README says feature pull requests are not accepted and names rate limiting and task deduplication as features it does not provide. · github.com, 9 Oct 2026
- Local development
- The README recommends mocking WakaQ to run tasks synchronously in development and tests without Redis or worker processes. · github.com, 9 Oct 2026
- Production use
- The README says WakaQ has been used in production at WakaTime since 2022. · github.com, 10 Oct 2026
- Purpose
- WakaQ is a background task queue for Python backed by Redis, described as a minimal Celery alternative. · github.com, 10 Oct 2026
- Queue features
- The project lists queue priorities, task broadcasting, soft and hard timeouts, and optional retries after soft timeouts. · github.com, 10 Oct 2026
- Task execution
- Tasks can be asynchronous or synchronous Python functions. · github.com, 9 Oct 2026
- Tasks
- Tasks can be synchronous or asynchronous, delayed until a specified time, or scheduled periodically. · github.com, 10 Oct 2026
- Timeouts and retries
- Tasks can have soft and hard timeout limits, with optional retries after soft timeouts. · github.com, 9 Oct 2026
- Worker memory
- Workers can be reloaded based on machine memory usage or the number of tasks processed. · github.com, 10 Oct 2026
- Worker memory controls
- Worker processes can be restarted based on memory use or the number of tasks processed. · github.com, 9 Oct 2026
Where WakaQ stands on Freedom251
- Task Queue Software#35 of 37