Skip to content
Skill Authoring
Skill

/background-job-processing

Implement background job processing systems with task queues, workers, scheduling, and retry mechanisms. Use when handling long-running tasks, sending emails, generating reports, and processing large datasets asynchronously.

From plugin
useful-ai-prompts
309200 skills
Install
$ npx -y skills add aj-geddes/useful-ai-prompts --skill background-job-processing --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/background-job-processing

Context preview

The summary Claude sees to decide when to auto-load this skill.

Implement background job processing systems with task queues, workers, scheduling, and retry mechanisms. Use when handling long-running tasks, sending emails, generating reports, and processing large datasets asynchronously.

SKILL.md

background-job-processing.SKILL.md
name: background-job-processing
description: >
  Implement background job processing systems with task queues, workers,
  scheduling, and retry mechanisms. Use when handling long-running tasks,
  sending emails, generating reports, and processing large datasets
  asynchronously.

Background Job Processing

Table of Contents

  • [Overview](#overview)
  • [When to Use](#when-to-use)
  • [Quick Start](#quick-start)
  • [Reference Guides](#reference-guides)
  • [Best Practices](#best-practices)

Overview

Build robust background job processing systems with distributed task queues, worker pools, job scheduling, error handling, retry policies, and monitoring for efficient asynchronous task execution.

When to Use

  • Handling long-running operations asynchronously
  • Sending emails in background
  • Generating reports or exports
  • Processing large datasets
  • Scheduling recurring tasks
  • Distributing compute-intensive operations

Quick Start

Minimal working example:

# celery_app.py
from celery import Celery
from kombu import Exchange, Queue
import os

app = Celery('myapp')

# Configuration
app.conf.update(
    broker_url=os.getenv('REDIS_URL', 'redis://localhost:6379/0'),
    result_backend=os.getenv('REDIS_URL', 'redis://localhost:6379/0'),
    task_serializer='json',
    accept_content=['json'],
    result_serializer='json',
    timezone='UTC',
    enable_utc=True,
    task_track_started=True,
    task_time_limit=30 * 60,  # 30 minutes
    task_soft_time_limit=25 * 60,  # 25 minutes
    broker_connection_retry_on_startup=True,
)

# Queue configuration
default_exchange = Exchange('tasks', type='direct')
app.conf.task_queues = (
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the `references/` directory:

| Guide | Contents | |---|---| | [Python with Celery and Redis](references/python-with-celery-and-redis.md) | Python with Celery and Redis | | [Node.js with Bull Queue](references/nodejs-with-bull-queue.md) | Node.js with Bull Queue | | [Ruby with Sidekiq](references/ruby-with-sidekiq.md) | Ruby with Sidekiq | | [Job Retry and Error Handling](references/job-retry-and-error-handling.md) | Job Retry and Error Handling | | [Monitoring and Observability](references/monitoring-and-observability.md) | Monitoring and Observability |

Best Practices

✅ DO

  • Use task timeouts to prevent hanging jobs
  • Implement retry logic with exponential backoff
  • Make tasks idempotent
  • Use job priorities for critical tasks
  • Monitor queue depths and job failures
  • Log job execution details
  • Clean up completed jobs
  • Set appropriate batch sizes for memory efficiency
  • Use dead-letter queues for failed jobs
  • Test jobs independently

❌ DON'T

  • Use synchronous operations in async tasks
  • Ignore job failures
  • Make tasks dependent on external state
  • Use unbounded retries
  • Store large objects in job data
  • Forget to handle timeouts
  • Run jobs without monitoring
  • Use blocking operations in queues
  • Forget to track job progress
  • Mix unrelated operations in one job
Read more
Ships withuseful-ai-prompts

488 production-ready AI prompts, all following a standardized template with validated quality gates. Transform ChatGPT, Claude, and other AI assistants into expert consultants.

Get the whole plugin