调度、工作流、隔离与观察
Redis、缓存与异步任务#Python全栈#第十五阶段#Redis、缓存与异步任务#调度、工作流、隔离与观察约 798 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
Celery Beat 与 Worker 怎样分工?
追问 周期任务调度和实际执行分别在哪一侧?多个调度器同时管理同一计划为何可能重复投递?
周期任务怎样处理时区、执行重叠与漏跑?
追问 间隔与 crontab 计划怎样选择?上次未结束时是否允许重叠,业务日期与补跑规则怎样明确?
ETA/countdown 与任务过期分别表达什么?
追问 计划开始时间与最晚允许执行时间有什么区别?长延迟和大批量未来任务为何可能更适合独立持久调度机制?
chain、group 与 chord 分别适合怎样的工作流?
追问 串行传递结果、并行任务与汇总回调怎样设计?失败与重试如何传播,chord 对结果后端有哪些要求需要核对?
怎样让长任务和短任务使用不同队列与 Worker?
追问 任务路由、并发池、预取与队列容量怎样配合?Celery 任务级 rate_limit 是否天然形成跨所有 Worker 的全局限制?
Worker 并发数为什么不是越大越好?
追问 CPU、内存、数据库连接、外部 API 配额和任务等待怎样限制容量?预取如何影响任务分配公平性与恢复时间?
怎样定位任务已投递却一直不执行?
追问 Broker 地址、队列名、任务注册、Worker 订阅、调度时间与容量怎样逐层核对?只有 HTTP 成功日志还缺少什么证据?
任务监控应该观察哪些信息?
追问 队列等待时间、运行耗时、失败、重试、Worker 心跳和业务完成率如何组合?日志与任务事件为何不能只按“成功数量”判断健康?
缓存、Broker 与结果后端共用 Redis 实例有什么风险?
追问 淘汰、内存争抢、慢命令、访问权限和清理怎样相互影响?不同数据库编号为何不等于资源和故障已隔离?
Worker 升级和任务格式变更时,应考虑什么兼容问题?
追问 旧消息、旧参数、新代码和结果结构怎样共存?停机前未完成任务、排队消息与密钥配置如何交接?