Freedom251 › Task Queue Software
arq

What arq is
arq is an open-source Python library for job queues and remote procedure calls, built with asyncio and Redis. It lets workers enqueue and execute jobs asynchronously, running many jobs at once as asyncio Tasks. Jobs can wait for a chosen time or duration, or run on cron schedules, and failed work can be retried, including by raising the Retry exception. Custom job IDs can stop duplicate enqueues while a job is unfinished and its result remains available. A Job instance exposes information, status, and results. If a worker stops during execution, the job stays queued and may run again, so functions should tolerate repetition. arq is self-hosted Linux software requiring Redis; the documented default is localhost:6379 with no password. Install it with `pip install arq`. Documentation lists v0.28.0; PyPI marks maintenance-only, requires Python >=3.9, and lists the MIT License.
Who it suits
arq suits Python developers, IT professionals, and system administrators building self-hosted asynchronous workers on Linux. It fits projects that already use Redis and need scheduling, retries, or RPC.
What it does well
- Runs many jobs concurrently as asyncio Tasks
- Supports delayed and cron-scheduled jobs
- Provides retry handling and custom job IDs
- Job objects expose status and results
- Distributed under the MIT License
What to know first
- Requires Redis for operation
- Self-hosted and listed for Linux
- Maintenance-only project status
- Jobs may run again after worker shutdown
Verdict
arq provides queueing, RPC, scheduling, retries, and result tracking in an asyncio-based Python package. Its Redis dependency, self-hosted deployment, and maintenance-only status are important considerations.
Facts from arq's own pages
- Async execution
- It uses asyncio to enqueue and execute jobs without blocking and can run multiple jobs concurrently as asyncio tasks. · arq-docs.helpmanual.io, 9 Oct 2026
- Blocking work
- The docs recommend running functions that block the event loop for extended periods in a ThreadPoolExecutor or ProcessPoolExecutor. · arq-docs.helpmanual.io, 9 Oct 2026
- Concurrency
- It uses asyncio Tasks to run multiple jobs simultaneously, potentially hundreds. · arq-docs.helpmanual.io, 9 Oct 2026
- Current version
- The documentation lists v0.28.0 as the current version. · arq-docs.helpmanual.io, 9 Oct 2026
- Distribution
- PyPI provides arq as a source distribution and a platform-independent Python 3 wheel. · pypi.org, 9 Oct 2026
- Execution behavior
- If a worker shuts down during a job, the job remains queued to run again, so jobs may be called more than once and should tolerate repetition. · arq-docs.helpmanual.io, 9 Oct 2026
- Install
- The documentation says to install arq with `pip install arq`. · arq-docs.helpmanual.io, 9 Oct 2026
- Installation
- The documentation gives `pip install arq` as the installation command. · arq-docs.helpmanual.io, 9 Oct 2026
- Intended audience
- PyPI classifies the project for developers, information technology, and system administrators. · pypi.org, 9 Oct 2026
- Job results
- The Job instance can provide job information, status, and results. · arq-docs.helpmanual.io, 9 Oct 2026
- Job uniqueness
- Custom job IDs prevent a job with that ID from being enqueued again until its execution finishes and its result clears. · arq-docs.helpmanual.io, 9 Oct 2026
- License
- The PyPI project page lists the MIT License. · pypi.org, 9 Oct 2026
- Maintenance status
- The PyPI project page says arq is in maintenance only mode. · pypi.org, 9 Oct 2026
- Project author
- PyPI credits Samuel Colvin as the author. · pypi.org, 9 Oct 2026
- Purpose
- arq provides job queues and RPC in Python using asyncio and Redis. · arq-docs.helpmanual.io, 9 Oct 2026
- Python requirement
- The PyPI project page lists Python >=3.9 as required. · pypi.org, 9 Oct 2026
- Redis connection
- The docs say the default Redis connection is localhost:6379 with no password. · arq-docs.helpmanual.io, 9 Oct 2026
- Redis dependency
- arq uses Redis; the documented default connection is localhost:6379 with no password. · arq-docs.helpmanual.io, 9 Oct 2026
- Retries
- Jobs can be retried, including by raising the Retry exception from within a job. · arq-docs.helpmanual.io, 9 Oct 2026
- Scheduling
- Jobs can be deferred until a specified time or duration, and functions can be scheduled as cron jobs. · arq-docs.helpmanual.io, 9 Oct 2026
- Scheduling and retries
- Jobs can be deferred until a duration or specific time, and jobs can be retried. · arq-docs.helpmanual.io, 9 Oct 2026
- Uniqueness
- Custom job IDs can prevent a job from being enqueued again while its execution is unfinished and its result remains available. · arq-docs.helpmanual.io, 9 Oct 2026
- What it does
- arq provides job queues and RPC in Python using asyncio and Redis. · arq-docs.helpmanual.io, 9 Oct 2026
Where arq stands on Freedom251
- Task Queue Software#36 of 37