Community생산성 & 협업github.com

wshobson/python-background-jobs

비동기 작업 처리, 작업 큐, 장기 실행 작업, 또는 요청/응답 주기에서 작업 분리를 구현할 때 사용하는 Python 백그라운드 작업 패턴(태스크 큐, 워커, 이벤트 기반 아키텍처 포함).

python-background-jobs란 무엇인가요?

이 스킬은 Python 기반 애플리케이션에서 비동기 작업 처리, 작업 큐, 워커 및 이벤트 기반 아키텍처를 구현하기 위한 포괄적인 패턴과 모범 사례를 제공합니다. 개발자가 장기 실행 작업, 지연된 처리, 또는 요청/응답 주기에서 분리가 필요한 작업(예: 이메일 전송, 이미지 처리, 데이터 파이프라인)을 효율적으로 처리할 수 있도록 도와줍니다. Celery, RQ, Redis, RabbitMQ 등의 주요 메시지 브로커 및 작업 큐 시스템을 지원하며, SKILL.md 문서에는 각 패턴의 상세 구성 방법, 워커 설정, 에러 처리, 재시도 로직, 모니터링 전략이 포함되어 있습니다. 이 스킬은 개발자가 확장 가능하고 견고한 백그라운드 작업 시스템을 빠르게 구축하고 운영하는 데 중점을 둡니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wshobson/agents/tree/main/skills/python-background-jobs

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

python-background-jobs은(는) 무엇을 하나요?

비동기 작업 처리, 작업 큐, 워커, 이벤트 기반 아키텍처를 포함하는 Python 백그라운드 작업 패턴입니다. 비동기 태스크 처리, 작업 큐, 장기 실행 작업, 또는 요청/응답 주기에서 작업을 분리할 때 사용하세요.

개요

백그라운드 작업은 애플리케이션 응답성과 확장성을 향상시키기 위해 요청/응답 주기 밖에서 작업을 실행하는 데 필수적입니다. 이 스킬은 다음을 포함한 다양한 패턴을 다룹니다:

  • 태스크 큐 (Celery, RQ)
  • 메시지 브로커 (Redis, RabbitMQ)
  • 워커 프로세스
  • 이벤트 기반 아키텍처
  • 에러 처리 및 재시도
  • 모니터링 및 로깅

설치

Celery와 Redis 브로커를 사용한 기본 설정:

pip install celery[redis]

RQ 사용 시:

pip install rq redis

기본 사용법

Celery 예제

# tasks.py
from celery import Celery

app = Celery('tasks', broker='redis://localhost:6379/0')

@app.task
def send_email(recipient, subject, body):
    # 이메일 전송 로직
    print(f"{recipient}에게 이메일 전송 중: {subject}")
    return True

워커 실행:

celery -A tasks worker --loglevel=info

태스크 호출:

from tasks import send_email
result = send_email.delay('[email protected]', '안녕하세요', '내용')

RQ 예제

# jobs.py
import redis
from rq import Queue
from rq.job import Job

redis_conn = redis.Redis()
q = Queue(connection=redis_conn)

def process_image(image_path):
    # 이미지 처리 로직
    print(f"{image_path} 처리 중")
    return "완료"

# 작업 큐에 추가
job = q.enqueue(process_image, '/path/to/image.jpg')

워커 실행:

rq worker

고급 패턴

태스크 체이닝

from celery import chain

result = chain(add.s(4, 5), multiply.s(10))()

재시도 및 에러 처리

@app.task(bind=True, max_retries=3)
def unreliable_task(self):
    try:
        # 실패할 수 있는 작업
        pass
    except Exception as exc:
        raise self.retry(exc=exc, countdown=60)

이벤트 기반 아키텍처

이벤트 기반 시스템에서는 워커가 작업을 폴링하는 대신 메시지 브로커가 이벤트를 구독자에게 푸시합니다. 예를 들어, RabbitMQ를 사용한 pub/sub 패턴:

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.exchange_declare(exchange='events', exchange_type='topic')

# 메시지 게시
channel.basic_publish(exchange='events', routing_key='user.created', body='새 사용자 생성됨')

모범 사례

  1. 작업을 멱등성 있게 설계: 작업이 여러 번 실행되어도 부작용이 없어야 합니다.
  2. 작업 결과 모니터링: Flower(Celery용) 또는 RQ Dashboard를 사용하세요.
  3. 적절한 재시도 정책 설정: 네트워크 오류와 같은 일시적 오류에 대비하세요.
  4. 작업 시간 제한 설정: 장기 실행 작업이 워커를 차단하지 않도록 하세요.
  5. 로깅 사용: 디버깅 및 감사를 위해 작업 상태를 기록하세요.

관련 스킬

  • wshobson/python-web-frameworks
  • wshobson/python-package-management

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

wshobson/accessibility-compliance

Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.

wshobson/airflow-dag-patterns

Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.

wshobson/angular-migration

Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.

wshobson/anti-reversing-techniques

Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.

wshobson/api-design-principles

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

wshobson/architecture-decision-records

Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.

wshobson/architecture-patterns

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use this skill when designing clean architecture for a new microservice, when refactoring a monolith to use bounded contexts, when implementing hexagonal or onion architecture patterns, or when debugging dependency cycles between application layers.

wshobson/async-python-patterns

Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.

wshobson/attack-tree-construction

Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.

wshobson/auth-implementation-patterns

Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems. Use when implementing auth systems, securing APIs, or debugging security issues.

wshobson/avoid-ai-writing

Audit and rewrite prose so it stops reading as machine-generated. Use this skill when asked to remove AI-isms, clean up AI writing, edit a draft for AI tells, audit a README, changelog, release note, PR description, or blog post for machine-sounding prose, or make text sound less like AI. Supports a detect-only mode, a rewrite mode, and an edit-in-place mode, with optional voice and context profiles.

wshobson/backtesting-frameworks

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.

wshobson/bash-defensive-patterns

Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.

wshobson/bats-testing-patterns

Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.

wshobson/bazel-build-optimization

Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.

wshobson/before-you-build

Pre-build product and feature risk review for founders, product managers, and AI-assisted builders. Use this skill when the user is about to build a landing page, MVP, SaaS product, internal tool, agent workflow, or major feature and needs to check demand, positioning, monetization, retention, trust, distribution, and adoption risk before implementation starts.

wshobson/billing-automation

Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recurring payment systems.

wshobson/binary-analysis-patterns

Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.

wshobson/block-no-verify-hook

Configure a PreToolUse hook to prevent AI agents from skipping git pre-commit hooks with --no-verify and other bypass flags. Use when setting up Claude Code projects that enforce commit quality gates.

wshobson/brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

관련 스킬