FREEDOM251

Freedom251 › Task Queue Software

arq

Paid LinuxSelf-hosted

Visit arq Alternatives

arq's own site

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

Look at these too