跳转至

Django + Celery 异步任务

Django 中的后台任务和异步处理。

使用时机

  • 在后台发送邮件
  • 调度耗时处理
  • 执行定期任务(日报、清理)
  • 将外部 API 调用加入队列
  • 编排复杂工作流

设置

1. Celery 安装

pip install celery redis

2. 任务定义

from celery import shared_task

@shared_task
def send_email(recipient):
    # メール送信ロジック
    pass

3. 启动 Worker

celery -A myapp worker -l info

任务

异步执行

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

调度

from celery.schedules import crontab

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

错误处理

  • [ ] 实现重试逻辑
  • [ ] 死信处理
  • [ ] 日志配置
  • [ ] 监控配置(Flower)

有关详细信息,请参阅文档。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC