旺季下午两点到四点,浴场和水乐园的入口必然排起一队。管理方的第一反应是加机器,第二反应是加人。这两个反应都合理,但都应该排在同一件事后面:把等待时间算出来。
先定义"一单"要多久

一单的时间由两段拼成。设备侧那段是很短且固定的:读卡零点三秒出卡号;领一次环走一问一答,机器问一句、上位机答一句,回一包四十八字节的数据。人那一侧就长了:掏证件、扫码、把环从取环口拿出来、低头套上手腕、旁边小孩还要大人抱一下。
这两段加起来才是一单。多数场馆会发现,设备侧那部分在总时间里几乎看不见,所以排队问题的主战场从来不在读卡速度上。
测的时候别用平均数
在高峰里挑二十分钟,掐表记单组通过时间,取中位数,不要取平均。带小孩的组、问路问规则的组会把平均值明显拉高,而你的队伍是按中位数那一档在长的。
记录要按台分开。同一排三台机器,往往有一台位置别扭、被人流动线挡住,它的单组时间就是比别人长一截,这属于摆放问题,不属于台数问题。
算式其实只有一行
把每十分钟的进场人数除以六百秒,得到每秒到达量。把单组中位时间除以台数,得到每台每秒能消化的量。前者大于后者,队伍就是无条件增长,加人只能延缓,不能收口。
队伍的长度约等于这个差额乘上持续的时间。这个估算粗,但它能回答一个关键问题:加一台,缺口够不够抹平。如果单台时间压不下去、差额还大,加机器才有意义。
三个比加机器便宜的动作
第一,把领取方式降一档。立式机领取支持按卡号、卡号加扇区、卡号并写扇区三种。每多写一个扇区就多一次交互。如果台账实际用不上环里的字段,就选纯按卡号领取。这是免费的提速,高峰前能做完。
第二,别把"忙碌"当失败重试。返回状态只有成功、失败、忙碌、滚筒内无手环四种。忙碌的含义是等三秒再问一次。如果上位机把忙碌当失败去重发,同一请求会被推成两三倍,队伍只会更长。这条要改的是对接代码,不是硬件。
第三,把补环放到高峰之外。协议里还有一态是滚筒内无手环,补环要走工作人员模式、把回收口切常开、补入、关回口、重新做一次自检。这一串动作要占用机器好几分钟,落在人流最大的时刻,等于当场少一台。高峰前补一次,比高峰时救火划算。

什么时候真的该加一台
三个条件同时成立再加:单组中位时间已经压不下去;缺口按上面的算法算出来是正的;队伍卡住的位置是操作台前而不是走廊转角。第三条最容易忽略。所有人卡在同一个动作上时,加机器有用;所有人卡在通道宽度上时,加机器只是把等待挪了个地方。
最后一句
值不值得加一台,问的从来不是"多一台贵不贵",而是"每十分钟能多消化多少人、能不能把这段高峰从四十分钟压回二十分钟"。先把数算出来,再决定采购,这一步的顺序错了,加完还是排队。
