# procrastinate-org/procrastinate

PostgreSQL-based Task Queue for Python

Repository: https://github.com/procrastinate-org/procrastinate
Canonical: https://ross.abutalabs.com/products/procrastinate
Homepage: https://procrastinate.readthedocs.io/
Language: Python
License: MIT
License Family: permissive
Topics: task-queue, postgresql, python, sync, async
Last push: 2026-08-26T12:22:45+00:00

## Health v2 (maintenance only)
Score: 96/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 89, longevity 100
- inputs: {"age_days": 2757, "days_push": 7, "days_rel": 74, "gap_med": 14.0, "n_releases_24m": 25}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1374, forks 109 (observed 2026-08-28T04:04:32.931141+00:00)

## What it is
Procrastinate is a Python distributed task processing library that uses PostgreSQL as its task queue backend, supporting both sync and async code. It handles task deferral, scheduling, periodic tasks, retries, and locking, with Django integration and ASGI framework support.

## Use cases
- run background jobs from a Python web app
- schedule periodic tasks with PostgreSQL
- defer expensive work out of request handlers
- process tasks asynchronously with async Python
- retry failed jobs automatically
- queue tasks in Django without Redis or RabbitMQ

## When to choose
- you already run PostgreSQL and want a task queue without extra infrastructure
- you need both sync and async task processing in Python
- you use Django or ASGI frameworks and want easy integration
- you need periodic tasks, retries, or task locking

## When to avoid
- you don't use PostgreSQL and can't add it
- you need extremely high throughput beyond what Postgres-based queues handle
- you prefer broker-based queues like RabbitMQ, Redis, or Kafka
- you're not working in Python

## Facets
- artifact type: library
- maturity: active
- function: message-queue, scheduling, workflow-automation, concurrency
- domain: backend, databases, developer-tools
- platform: python, cross-platform
- tags: task-queue, postgresql, background-jobs, async, django, distributed-tasks, periodic-tasks, retries, automation

## Member repositories
- procrastinate-org/procrastinate (main) score 96

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:32.931141+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:40:38.901015+00:00, confidence not recorded.
  - readme: https://github.com/procrastinate-org/procrastinate (fetched 2026-08-28T04:04:32.931141+00:00, sha ee0e2d9f1bf3)
  - registry_pypi: https://pypi.org/pypi/procrastinate/json (fetched 2026-08-29T11:57:28.769875+00:00, sha 6e89049fb927)
- Data as of 2026-08-30T08:39:29.467469+00:00.
