Skip to main content

TaskQueue

A Task Queue Wrapper for Dekoruma Backend

Description

TaskQueue is a Python package that provides a wrapper around Celery for task queue management. It includes automatic queue setup, Dead Letter Queue (DLQ) routing, and dynamic task execution capabilities.

With a RabbitMQ broker, set TASKQUEUE_RETRY_DELAY_SECONDS = 3600 to hold failed tasks in retry.<queue> while workers process other tasks. Provision the retry queues before starting workers by running the Django management command with that setting enabled:

python manage.py setup_taskqueue

A task retries three times, then follows the existing DLQ route. If the setting is absent, retry behavior is unchanged.

Retry queue and DLQ

The retry queue is a temporary waiting area. RabbitMQ keeps a failed message there for the configured delay, then returns it to its original work queue. Workers do not consume retry queues, so a delayed retry does not occupy a worker slot.

The dead-letter queue (DLQ) is the terminal failure area. A message enters dlq.<queue> after it exhausts its retries or cannot be routed safely. It stays there until an operator or the existing DLQ replay process handles it.

Queue Purpose Leaves automatically? Consumed by workers?
retry.<queue> Wait before another attempt Yes, after the RabbitMQ TTL No
dlq.<queue> Preserve an exhausted or unroutable task No No

Retry flow

flowchart TD
    A1[A attempt 1 fails] --> R1[retry.default waits for broker delay]
    A1 --> B[B succeeds immediately]
    R1 --> A2[A attempt 2 fails]
    A2 --> R2[retry.default waits for broker delay]
    R2 --> A3[A attempt 3 fails]
    A3 --> R3[retry.default waits for broker delay]
    R3 --> A4[A attempt 4 fails]
    A4 --> DLQ[dlq.default]

With one worker, the observed order is:

A attempt 1 — failed
B succeeded  — ran immediately
A attempt 2 — failed after broker delay
A attempt 3 — failed after broker delay
A attempt 4 — failed after broker delay
A → dlq.default

The final queue state is:

default:       0
retry.default: 0
dlq.default:   1

Deploy

  • Push changes to main
  • Create new TAG with version name (i.e 0.1.3)
  • Check status on the Actions page on Github

Metadata

Release files for p1-taskqueue 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for p1-taskqueue 0.2.2
File Size Uploaded
p1_taskqueue-0.2.2.tar.gz 25.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for p1-taskqueue 0.2.2
File Interpreter ABI Platform
p1_taskqueue-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 45.7 kB

Release files / p1_taskqueue-0.2.2.tar.gz

Download URL p1_taskqueue-0.2.2.tar.gz
Size 25.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7814af52f0df19550e9add10247feb43d3cddfa5700f387292d7c7c0f73e6448
BLAKE2b-256 checksum
How to use checksums
35fc9bc548ae5b8461a577e065a596c91559db3697e8f26ac1e170dfbe2c6736
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / p1_taskqueue-0.2.2-py3-none-any.whl

Download URL p1_taskqueue-0.2.2-py3-none-any.whl
Size 19.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d313108c0f48e38d3e9017dd01a901de2ca9360229338c15f7e578e7189697d
BLAKE2b-256 checksum
How to use checksums
1d7c99ee563309c9a4f0be0cf85b6b106eef5e056e1a6ed30909636a8059c32a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page