第七站:中间件、会话、缓存、信号与邮件
本站处理横切能力:为请求关联身份,为读路径缓存副本,为提交后的通知建立显式边界。
运行入口
bash
python manage.py shell
python manage.py test tickets交付物
- 每个响应带请求 ID,日志使用同一关联键。
- 缓存键包含资源、用户/租户和 schema 版本。
- 写入成功提交后才失效缓存、入队通知。
- 信号只承担轻量旁路,不隐藏核心状态迁移。
深水边界
middleware 顺序改变认证、会话、异常和响应行为。缓存中的权限结果可能在撤权后继续有效。post_save 在事务提交前触发,监听器看到“保存”不等于其他连接已经看到“提交”。
练习(先做)
- 实现请求 ID 中间件并保留调用方提供的合法 ID。
- 缓存工单详情,编辑后提交再失效。
- 对比显式服务调用、signal 与
on_commit()的失败路径。