GSoC 2026 Proposal: Django-Tasks-Monitor

GSoC 2026 Proposal— Django

Django Tasks Monitor

Admin & Monitoring for Django 6.0 Background Tasks

Hi Django community! I am Raza Ali ,Final Year Software Engineering Student at Punjab University College of Information Technology, Lahore ,Pakistan with more than 4 years of work in more than 15 full stack projects (Python Backend) , I have also completed a professional development program from Aspire Institute ,Harvard Business School

I want to propose the following project for the GSOC’26 ,it falls in Third Category (Libraries that add new features to Django) as mentioned in Django Project Forum.

Project Name: Django-tasks-monitor

Admin & Monitoring for Django 6.0 Background Tasks

Category

Category 3 — New library supplementing Django (pattern: Debug Toolbar)

Size

350 hours

Key Skills

Python, Django, Django Admin, django.tasks (Django 6.0), signals

Reference

Django 6.0 tasks framework / DEP 14 / django/new-features

Abstract

Django 6.0 shipped the django.tasks background tasks framework — one of the most anticipated Django features in years. However, it shipped with no admin integration, no monitoring UI, no failure visibility, and no queue statistics. Every developer using django.tasks in production is completely blind to what is running, what failed, and why.

This project proposes to build django-tasks-monitor — a new installable library (pip install django-tasks-monitor) that adds a full Django Admin integration, task monitoring dashboard, failure inspection with one-click retry, management commands, and a signals system for external alerting. It works with any django.tasks-compatible backend.

I deeply looked over the work on django-tasks-db by Jake Howard (Github: RealOrangeOne/django-tasks-db) ,he worked on making Django background tasks work in the production , jobs can be deferred at specific time to run in future,pruning old tasks but it missed the admin integration to visualize the jobs status in production,No API to get pending/running/failed counts per queue. No way to know if your worker is keeping up with the queue depth.

Problem Statement

1. Zero visibility into task execution

There is no way to see pending, running, or completed tasks from the Django admin. Developers must query the database directly or read log files. This is exactly the problem Flower solves for Celery — but nothing equivalent exists for django.tasks.

2. No failure management

When a task fails, there is no built-in way to see the traceback, understand what arguments were passed, or retry the task. Production incidents involving failed background tasks require manual database inspection.

3. Backend-agnostic gap

The django.tasks framework is explicitly backend-swappable. Any monitoring tool must work with DatabaseBackend (django-tasks-db), future backends, and any third-party backends through the standard TaskResult interface.

4. Survey evidence

The 2025 Django Developers Survey (4,600 respondents) found 80% of developers debug using only print statements and logs — proving the widespread lack of structured developer tooling. 49% use Celery today, all of whom have Flower for monitoring. django.tasks users have nothing comparable.

Proposed Solution

django-tasks-monitor is a new standalone library that integrates with Django’s admin to provide complete task visibility. It works with any django.tasks-compatible backend through the standard TaskResult interface.

Setup — 3 lines in settings.py

INSTALLED_APPS = [

‘tasks_monitor’,

]

# Visit /admin/tasks_monitor/taskresult/

# See every task: status, timing, queue, function name

Failure detail view

Task ID: abc-123-def-456

Function: myapp.tasks.send_invoice_email

Status: FAILED

Enqueued: 2026-03-23 14:32:01

Failed at: 2026-03-23 14:32:04

Arguments: {“user_id”: 42, “inv oice_id”: 99}

Traceback (most recent call last): File myapp/tasks.py line 23 in send_invoice_email

SMTPException: Connection refused

[ Retry Now ] [ Delete ] [ View in queue ]

Deliverables

1 TaskResultAdmin

  • List view: task ID, function name, status, queue, enqueued time, duration

  • Filter by status (PENDING/RUNNING/SUCCEEDED/FAILED), queue name, function

  • Search by task ID and function name, sortable by time and priority

2. Failure detail view

  • Full Python traceback with formatting

  • Arguments the task was called with, safely displayed

  • One-click Retry button that re-enqueues the failed task

  • Delete button to remove the task result from the database

3. Queue statistics dashboard

  • Per-queue counts: pending, running, succeeded, failed

  • Oldest pending task age — shows when tasks are stuck

  • Overall worker health indicator

4. Management commands

  • manage.py tasks_monitor_stats — print queue stats to terminal

  • manage.py tasks_monitor_clear — clear old completed task results

  • manage.py tasks_monitor_retry_failed — re-enqueue all failed tasks

5. Signals for alerting

  • task_failed signal — fires when any task fails (for Sentry/ PagerDuty integration)

  • queue_depth_exceeded signal — fires when pending queue exceeds threshold

  • worker_idle signal — fires when no tasks processed in N minutes

6. Backend-agnostic design

  • Works with DatabaseBackend from django-tasks-db out of the box

  • Clean adapter interface for any future django.tasks backends

  • Gracefully degrades when backend does not support certain features

7. Test suite and documentation

  • Full test suite for all admin views, commands, and signals

  • Documentation covering installation, configuration, and customisation

  • Sentry integration example in documentation

12-Week Timeline

Week Work

Wk 1-2

Community bonding. Study Django 6.0 tasks framework source code and DEP 14. Install django-tasks-db locally and run tasks end-to-end. Fix 2 Easy Pickings tickets. Post introduction on Django Forum.

Wk 3-4

Build library scaffold. Backend adapter interface. TaskResult model wrapper. Basic INSTALLED_APPS integration. Initial admin registration.

Wk 5-6

Full TaskResultAdmin implementation. List view with all columns and filters. Search and sort. Write tests for all admin views.

Wk 7

Failure detail view. Traceback display. Arguments display. Retry and Delete buttons. Write full tests.

Wk 8

MIDTERM — TaskResultAdmin and failure detail view complete. Published to PyPI as alpha. Request community feedback on Django Forum.

Wk 9

Queue statistics dashboard. Per-queue counts. Worker health indicator. Oldest pending task indicator.

Wk 10

Management commands — tasks_monitor_stats, tasks_monitor_clear, tasks_monitor_retry_failed. Full tests.

Wk 11

Signals system — task_failed, queue_depth_exceeded, worker_idle guide in documentation.

Wk 12

Full documentation. Configuration reference. Customisation guide. Final PyPI stable release. GSoC final report.

Success Criteria

  • django-tasks-monitor published on PyPI and installable with pip install

  • TaskResultAdmin shows all task results with filtering, search, and sort

  • Failure detail view shows full traceback and one-click retry

  • Queue statistics dashboard shows live queue depth per queue

  • All 3 management commands work correctly

  • Signal system fires correctly for task failures

  • Test suite covers all views, commands, and signals

  • Full documentation published

Guide Alignment

Category 3 fit: The official guide names Debug Toolbar as the model. This project follows that exact pattern — a new installable library supplementing Django.

  • Useful to a majority: Django 6.0 is the current release. Every project starting today can use django.tasks. This tool fills the most visible gap.

  • Nothing like this on PyPI: Verified against all existing packages — no admin integration for django.tasks exists anywhere.

  • Single achievable project: A focused library with clear deliverables completable in 350 hours.

About Me

Raza Ali — I am an advanced Python and Django developer with 4 years of python experience. I have worked with Django 6.0’s tasks framework since its release and immediately encountered the monitoring gap in production. Github: Github ,Linked in username: razaali313 (2 Links limitation in community forum therefore , I could not share more links ,happy to share my coding profiles also if required)

My past open source contributions: Worked on 3 full stack projects in GSSOC’24 and GSSOC’25 program ,an Indian open source program ,my PRs got merged that can be analyzed on my Github.

Experience: Part time Associate Software Engineer at Metadots, worked in close relation with clients from Spain, US, Morocco and UK.

Why I am the right person: I have hands-on experience with django.tasks, I understand the pain of debugging failed background tasks without visibility, and I have already prototyped a basic TaskResultAd min locally to validate that the approach works.

Looking forward to work with you Django !:smiley:

Proposal Available on Gist : View Gist

1 Like