Skip to content

第八站:异步、Tasks 与实时边界 ​

课程首页 | 路线映射

本站是 Django 6.0 选修主线:异步视图使用 ASGI 请求栈,Tasks 描述请求外工作。先确认真实阻塞点,再引入异步复杂度。

运行入口 ​

bash
python manage.py test tickets
python manage.py shell

专题:异步请求与 Django Tasks | 幂等任务与 ASGI 生命周期

交付物 ​

  • 一个 async def 状态接口及 AsyncClient 测试。
  • 一个模块级 @task,参数和返回值可 JSON 往返。
  • 使用 transaction.on_commit() 入队,不让 worker 看见未提交数据。
  • 文档写明生产 backend、worker、重试、超时、幂等和监控责任。

版本边界 ​

Django 5.2 LTS 没有内置 Tasks;存量 Celery/RQ 不需要为了升级而重写。Django 6.0 内置 Immediate/Dummy backend 只面向开发与测试,生产执行必须依赖外部基础设施。

练习(先做) ​

  1. 用异步 ORM API 返回开放工单数。
  2. 定义通知任务,只传稳定主键和字符串,不传模型实例。
  3. 演练任务执行两次,证明结果不会重复改变业务状态。

练习答案 | 下一站

用心记录每一步成长