Django Celery

作者 affaan-mef648e01899b无许可证275K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库3天前更新

DjangoおよびCeleryを使用した非同期タスク処理。タスクキューイング、ワーカー管理、エラー処理、スケジューリング。Redis/RabbitMQ ブローカー統合。

AI 生成的概览

指导 Django 开发者使用 Celery 配置后台任务、调度与错误处理。

功能
该技能提供在 Django 应用中用 Celery 添加异步后台任务处理的说明。内容涵盖安装 Celery 与 Redis、定义共享任务、启动 worker、使用 crontab 安排周期性任务,以及通过重试、死信处理、日志和 Flower 监控来处理错误。它产出的是指导与代码片段,而非可运行脚本。
适用场景
当需要在后台执行邮件发送等繁重工作、安排日报或清理等周期性任务、将外部 API 调用加入队列,或在 Django 项目中协调复杂工作流时使用。
运行要求
需要一个 Django 项目,并安装 Celery 与 Redis(或 RabbitMQ),同时运行消息代理和 worker 进程。该技能不包含脚本,仅为说明文档。

Django + Celery 非同期タスク

Django でのバックグラウンドジョブと非同期処理。

使用時期

  • メール送信をバックグラウンドで実行
  • 重い処理をスケジュール
  • 定期的なタスクを実行(日報、クリーンアップ)
  • 外部API呼び出しをキューイング
  • 複雑なワークフローを調整

セットアップ

1. Celery インストール

bash
pip install celery redis

2. タスク定義

python
from celery import shared_task
@shared_taskdef send_email(recipient):    # メール送信ロジック    pass

3. ワーカー起動

bash
celery -A myapp worker -l info

タスク

非同期実行

python
send_email.delay(recipient)  # すぐにキューに追加、非同期実行

スケジューリング

python
from celery.schedules import crontab
app.conf.beat_schedule = {    'send-report-daily': {        'task': 'app.tasks.send_report',        'schedule': crontab(hour=9, minute=0),    },}

エラーハンドリング

  • リトライロジック実装
  • デッドレター処理
  • ロギング構成
  • モニタリング設定(Flower)

詳細については、ドキュメントを参照してください。

来源与署名

来源:affaan-m/ecc位于docs/ja-JP/skills/django-celery提交ef648e0

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架