寓言故事
城门口的活不能都交给第一个跑腿人
旧城的办事厅只有一张长桌。谁把请求递到桌前,值班人就立刻处理。改地址、查库存、写合同、催回款,全挤在同一条队伍里。
业务刚开始时,这样最快。客户发来一句话,前台伙计立刻取工具办事,结果马上返回。没人觉得需要更复杂的安排。
后来任务变厚了。有些请求只要查一行记录,有些要跑十分钟推演,有些要等外部系统回信。前台窗口被长任务堵住,短任务也只能陪着排队。
主管的天真修补是多派几名跑腿人。短期看队伍变短,几天后却出现更坏的问题:同一任务被两个人抢走,失败任务没人记得,夜里积压的活早上一起冲垮系统。
又有人提议让前台伙计自己判断先后。可前台伙计只看到眼前请求,不知道全城负载、商号优先级、任务依赖和失败次数。聪明的局部判断救不了混乱的全局调度。
新总管把长桌改成任务柜。每张任务卡写清类型、租户、优先级、截止时间、重试次数和可执行条件。前台只负责接单入柜,工人从不同抽屉按规则领取。任务柜还给不同工种留了容量。写合同的人不去搬库存,催款的人不抢技术修复,夜里积压太多时,调度钟先保护客户正在等待的短活。
任务柜旁边还有调度钟。轻任务走快道,重任务进后台,失败任务按退避时间重试,依赖未完成的任务先冻结。每个工人拿到任务后要登记开始、完成或失败原因。主管最满意的是失败不再消失。哪张卡重试三次,哪张卡等外城回信,哪张卡必须交给老师傅,都能在柜面看见。办事厅终于知道自己忙在哪里。
从那以后,客户请求不再被长活拖死。办事厅可以削峰,可以增派工人,可以暂停某类任务,也可以从流水里看清哪条队伍正在积压。办事厅学到的不是排队本身,而是把工作从对话瞬间拆出来,变成可调度、可恢复、可观测的执行单元。