EVERYTHING XIAOMI
Get listed

Procrastinate

Procrastinate is an open-source distributed task processing library for Python applications that need to send work to background workers.

Place
#19 of 37
Score
6.1
Procrastinate's website

What Procrastinate is

Procrastinate is an open-source distributed task processing library for Python applications that need to send work to background workers. It uses PostgreSQL 13 or later to store job definitions, coordinate locks and dispatch tasks. Jobs can run once in the future, after a delay or periodically. Tasks support retry limits, exception filters and constant, linear or exponential delays. Jobs with a shared lock run one at a time, ordered by priority and then creation time.

The library supports synchronous and asynchronous code, and its documentation recommends asynchronous use when possible. Django integration can use Django database settings, load tasks from apps, and provide models, admin pages and migrations for Procrastinate tables. Command-line tools include health checks and an interactive shell for inspecting and administering jobs, tasks, queues and locks. The shell is experimental, and an administration web portal is not yet available. Procrastinate is free and self-hosted; the quickstart installs it in a Python virtual environment with `pip install procrastinate`. It is known to work on Windows, but the documentation advises Unix-like systems for production because workers may stop abruptly on Windows and automated Windows tests are absent.

Good

  • Schedules delayed and recurring jobs.
  • Supports configurable retry strategies.
  • Django integration includes models and migrations.
  • Command-line tools provide health checks.
  • Free and open source.

Watch out

  • Requires PostgreSQL 13 or later.
  • Administration shell is experimental.
  • No administration web portal is available.
  • Documentation advises against Windows for production.

Who it suits

Procrastinate suits Python applications that need to defer work to workers, including Django or ASGI applications. It is best considered by teams prepared to self-host and use PostgreSQL 13 or later.

Verdict

Procrastinate provides scheduling, retries, locks and Django support for Python task processing. Its PostgreSQL requirement, self-hosted setup and limited administration interface are important considerations.

Plans and prices

From Procrastinate's own pricing page, checked 9 Oct 2026.

All about pricing
PlanPriceWhat it gives you
ProcrastinateFreeOpen-source Python library; uses PostgreSQL 13+

The facts

Each one read from Procrastinate's own pages, with the date it was checked.

What it does

Database requirement
Procrastinate relies on PostgreSQL 13 or later to store and manage jobs.checked 9 Oct 2026
Django integration
The Django integration can use Django database settings, load tasks from apps, provide models and admin pages for Procrastinate tables, and supply Django migrations.checked 9 Oct 2026
Error reporting
When a job raises an error, Procrastinate logs the error with `exc_info`; the documentation names Sentry logging integration and Google Cloud as tools that can collect these errors.checked 9 Oct 2026
Execution modes
It supports synchronous and asynchronous code, and the documentation recommends asynchronous use when possible.checked 9 Oct 2026
Installation
The quickstart installs Procrastinate in a Python virtual environment with `pip install procrastinate`.checked 9 Oct 2026
Intended users
The documentation presents Procrastinate for Python applications that need to defer work to workers, including applications using Django or ASGI frameworks.checked 9 Oct 2026
Locks and priorities
Jobs sharing a lock are processed one at a time, ordered by descending priority and then ascending creation time.checked 9 Oct 2026
Monitoring
The command-line interface provides health checks, and its interactive shell can inspect and administer jobs, tasks, queues, and locks.checked 9 Oct 2026
Monitoring limitation
The documentation says the administration shell is experimental and that an administration web portal is not yet available.checked 9 Oct 2026
Purpose
Procrastinate is an open-source distributed task processing library for Python that uses PostgreSQL to store task definitions, manage locks, and dispatch tasks.checked 9 Oct 2026
Retries
Tasks can use retry strategies with retry limits, constant, linear, or exponential delays, and exception filters.checked 9 Oct 2026
Scheduling
Jobs can be scheduled to run once in the future or after a specified delay, and tasks can also be launched periodically.checked 9 Oct 2026

Where it runs

Windows support
Procrastinate is manually tested and known to work on Windows, but its documentation advises using a Unix-like system in production because workers may stop abruptly and Windows has no automated tests.checked 9 Oct 2026

Alternatives to Procrastinate

All alternatives
  1. 1Inngest logo

    Inngest

    Free planOpen sourceWebAPILinuxmacOS
    8.3From $99 a month
  2. 2

    Hangfire

    Free planOpen sourceWebAPILinuxSelf-hosted
    8.0From $500 a year
  3. 3

    Graphile Worker

    Free planOpen sourceAPILinuxmacOSSelf-hosted
    7.9From $25 a month
  4. 4

    Gearman

    Free planOpen sourceAPILinuxmacOSSelf-hosted
    7.3Free plan
  5. 5

    Google Tasks

    Free planAndroidiOSWeb
    7.0Free plan
  6. 6

    IronWorker

    Free planWebAPILinuxSelf-hosted
    6.9From $169 a month