交班的时候接班那个人还没拿到自己的账号,先借用交班人的号在窗口机上登进去,转身又在自己工位上开了一个后台。这种情况在智慧景区售票系统的实施现场天天发生,第一反应总是“要不要把前一个会话踢下线”。但拦之前得先看清:拦错了,窗口会出现半张票;不拦,出错时找不到人。
先分清是真并发还是换班。真并发是两台机器同时在做交易;换班是同一个工位前后两三分钟坐了两个人。前者需要限制,后者一刀切拦死,只会逼着大家共号,共号之后的账就再也追不到具体经手人。判据不复杂:看两次登录落在同一台设备还是不同设备,看中间隔了多久,再看前一个会话有没有未提交的单据。售票系统里把这三条组合起来判断,比单纯设一个“单点登录”开关靠谱得多。
后登录挤掉前登录的风险。单会话强制看着干净,实际后果是前一个窗口正在打印的那张票断在半路,钱柜里的钱和屏幕上的单据不一致,游客还排着队。顶岗、高峰双开、值班长一边在办公室处理异常一边到窗口帮忙,都会撞上这一刻。所以挤掉之前要有软处理:先把前一个会话的未提交数据落地,给十几秒到三十秒缓冲,再断,并在被断的那台机器上留一句明确提示,让现场知道该找谁重新登录。
按角色分权限的代价。只认人不认机器,账号跟着角色走,看起来管理简单,真正的麻烦在后面。角色一多,权限表就变成一张没人敢动的地图,改一次要全员重训;更麻烦的是出了差错追不到人,因为号在流转,一个班次里可能三个窗口都用过同一个账号。票务系统在这种配置下,日志里只留下账号,不留工位,事后只能靠排班表反推。售票系统里如果只有角色没有工位记录,换班那十几分钟打出去的票,会全部归到上一个人名下。

按机器分设备号的代价。另一个方向是给每台窗口机一个工位号,谁坐那儿谁登录,账号绑工位不绑人。好处很直接:并发天然撞不上,出问题一眼看到是哪个窗口。代价是个人绩效和责任要靠签到表补齐;换工位时权限跟着机器走,值班长到别的窗口顶班,会发现自己没有作废权。多数团队最后走混合:出票、打凭证用工位号,需要权限的动作补一次个人身份确认,智慧景区售票系统在这种混合配置下要把两类账号的日志串成一条线看。

该拦的是写操作,不是登录本身。同一账号在两台机器上都能看报表,其实危害有限;都能出票、都能退款才是问题。智慧景区售票系统里更稳的口径是允许并发登录,但对同一个工位号的写操作加锁,后提交的那一笔直接失败并提示改用别的工位号。把拦截点从登录挪到写入,既不误伤换班,也守住了钱和票。
日志要留这五项。登录时间、设备标识、网段、当时绑定的工位号、会话结束原因。售票系统只记前两项的话,事后讨论“到底是不是同一个人”会一直吵下去。把设备标识和工位号一起落进日志,换班顶岗这些场景才能被解释清楚,而不是被当成违规。
