Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
vintasoftware avatar

Django Celery Expert

  • 838 installs
  • 117 repo stars
  • Updated July 23, 2026
  • vintasoftware/django-ai-plugins

django-celery-expert is an agent skill that configures, debugs, and optimizes Django plus Celery task queues—including celery.py setup, settings namespace, and auto-discovered tasks.py modules—for reliable async workflow

About

django-celery-expert is a Vinta Software skill for Django-Celery integration across project layout: myproject/celery.py, settings with CELERY_ namespace, and per-app tasks.py files auto-discovered from installed apps. It documents Celery app initialization via django.conf:settings, environment defaults for DJANGO_SETTINGS_MODULE, and patterns for defining app-specific async tasks. Developers reach for django-celery-expert when wiring brokers, fixing stuck workers, tuning retries, or structuring task modules in production Django codebases. The skill acts as an embedded queue specialist during build and operate phases.

  • Generates complete Celery setup including celery.py, __init__.py, and settings.py configurations
  • Supports both Redis and RabbitMQ brokers with correct result backend patterns
  • Auto-discovers tasks and provides production-ready serialization and timezone settings
  • Creates task files with proper @task decorators and bind=True patterns
  • Troubleshoots common integration issues like broker connectivity and result storage

Django Celery Expert by the numbers

  • 838 all-time installs (skills.sh)
  • +60 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #477 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/vintasoftware/django-ai-plugins --skill django-celery-expert

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs838
repo stars117
Security audit3 / 3 scanners passed
Last updatedJuly 23, 2026
Repositoryvintasoftware/django-ai-plugins

How do you set up Celery with Django?

Get an expert agent that configures, debugs, and optimizes Django + Celery task queues and async workflows.

Who is it for?

Django backend developers integrating Celery brokers, workers, and task modules who need expert setup and troubleshooting guidance.

Skip if: Non-Django Python async stacks, serverless-only architectures without Celery workers, or frontend-only tasks.

When should I use this skill?

The user configures Celery in Django, debugs task queues, or asks about celery.py, CELERY_ settings, or tasks.py discovery.

What you get

Working celery.py app config, Django settings namespace, auto-discovered tasks.py modules, and debugged async task workflows.

  • celery.py configuration
  • tasks.py modules
  • Tuned async workflow setup

Files

SKILL.mdMarkdownGitHub ↗

Django Celery Expert

Instructions

Step 1: Classify the Request

Identify the task category from the request:

  • Django integration — transaction safety, ORM patterns, testing, request correlation → read references/django-integration.md
  • Task design — new tasks, calling patterns, chains/groups/chords, idempotency → read references/task-design-patterns.md
  • Configuration — broker setup, result backend, worker settings, queue routing → read references/configuration-guide.md
  • Error handling — retries, backoff, dead letter queues, timeouts → read references/error-handling.md
  • Periodic tasks — Celery Beat, crontab schedules, dynamic schedules, timezone handling → read references/periodic-tasks.md
  • Monitoring — Flower, Prometheus, logging, debugging stuck tasks → read references/monitoring-observability.md
  • Production deployment — scaling, supervision, containers, health checks → read references/production-deployment.md

If the request spans multiple categories, read all relevant reference files before continuing.

Step 2: Read the Reference File(s)

Read each reference file identified in Step 1. Do not proceed to implementation without reading the relevant reference.

Step 3: Implement

Apply the patterns from the reference file. Before presenting the solution, verify:

  • Task arguments are serializable (pass IDs, not model instances)
  • Tasks with retries enabled are idempotent
  • Errors are logged with context
  • Long-running tasks have timeouts configured

Examples

Basic Background Task

Request: "Send welcome emails in the background after user registration"

# tasks.py
from celery import shared_task
from django.core.mail import send_mail

@shared_task(bind=True, max_retries=3)
def send_welcome_email(self, user_id):
    from users.models import User

    try:
        user = User.objects.get(id=user_id)
        send_mail(
            subject="Welcome!",
            message=f"Hi {user.name}, welcome to our platform!",
            from_email="noreply@example.com",
            recipient_list=[user.email],
        )
    except User.DoesNotExist:
        pass
    except Exception as exc:
        raise self.retry(exc=exc, countdown=60 * (2 ** self.request.retries))


# views.py — queue only after the transaction commits
from django.db import transaction

def register(request):
    user = User.objects.create(...)
    transaction.on_commit(lambda: send_welcome_email.delay(user.id))
    return redirect("dashboard")

Task with Progress Tracking

Request: "Process a large CSV import with progress updates"

@shared_task(bind=True)
def import_csv(self, file_path, total_rows):
    from myapp.models import Record

    with open(file_path) as f:
        reader = csv.DictReader(f)
        for i, row in enumerate(reader):
            Record.objects.create(**row)
            if i % 100 == 0:
                self.update_state(
                    state="PROGRESS",
                    meta={"current": i, "total": total_rows},
                )

    return {"status": "complete", "processed": total_rows}


# Poll progress
result = import_csv.AsyncResult(task_id)
if result.state == "PROGRESS":
    progress = result.info.get("current", 0) / result.info.get("total", 1)

Workflow with Chains

Request: "Process an order: validate inventory, charge payment, then send confirmation"

from celery import chain

@shared_task
def validate_inventory(order_id):
    order = Order.objects.get(id=order_id)
    if not order.items_in_stock():
        raise ValueError("Items out of stock")
    return order_id

@shared_task
def charge_payment(order_id):
    order = Order.objects.get(id=order_id)
    order.charge()
    return order_id

@shared_task
def send_confirmation(order_id):
    Order.objects.get(id=order_id).send_confirmation_email()

def process_order(order_id):
    chain(
        validate_inventory.s(order_id),
        charge_payment.s(),
        send_confirmation.s(),
    ).delay()

Related skills

How it compares

Use django-celery-expert for Django-specific Celery wiring; use generic Python async skills for non-Django queue systems.

FAQ

How does django-celery-expert wire Celery into Django?

django-celery-expert places celery.py in the Django project package, loads config from django.conf:settings with the CELERY_ namespace, sets DJANGO_SETTINGS_MODULE, and auto-discovers tasks in installed apps' tasks.py files.

What files does django-celery-expert expect?

django-celery-expert expects myproject/celery.py for the Celery app, settings.py with CELERY_ prefixed options, and myapp/tasks.py modules per app—matching the documented Vinta project structure.

Is Django Celery Expert safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.