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 從公開儲存庫中收錄這些內容。

檢舉或申請下架