重号问题解决方案

[复制链接]
查看11 | 回复10 | 2021-1-27 05:09:37 | 显示全部楼层 |阅读模式
最近要处理一个办事大厅的重号问题:
大厅接待多个部门的不同类型业务,用户需要先去人工窗口或者自助机上挂号登记并取得业务号,然后根据呼叫依次办理业务,早期大厅取号只有一个人工窗口,挂号台直接从数据库中获取各业务部门的最大业务号然后加1生成当前号给用户,由于挂号端只有一个,所以一直没有重号出现,现在整改后,办事部门增多,来办事的人更多,所以就增加了多个人工挂号窗口和自助挂号终端。这样就出现同一时间不同终端在给同一业务派号时就参生了重号。
现在需要解决该问题,自己的思路是:自己做一个专门负责管理业务号的服务程序,然后各终端都到该服务程序来获取业务号。实现方式就是用TCP/IP协议来做。提供DLL库给和挂号终端调用。DLL库中提供与管理业务号的服务程序通信的接口函数。
不知道我这个思路行了行?大家有没有其它方案可建议,或者有相关资料实例提供,感谢。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:09:37 | 显示全部楼层


不难吧。关键看那个取号机是什么系统语言开发的。怎么方便怎么来。
思路就是取号机都网络访问一台生成计数器服务器。感觉http接口实现简单的一批。
回复

使用道具 举报

千问 | 2021-1-27 05:09:37 | 显示全部楼层
用锁就解决了
回复

使用道具 举报

千问 | 2021-1-27 05:09:37 | 显示全部楼层
可能用数据库的方式可能更好,跨平台及系统兼容性可能会更强,而且有问题的时候容易调试

回复

使用道具 举报

千问 | 2021-1-27 05:09:37 | 显示全部楼层
引用2楼Simple-Soft的回复:用锁就解决了
用锁不行吧,你锁了其它窗口怎么用这个表?
回复

使用道具 举报

千问 | 2021-1-27 05:09:37 | 显示全部楼层
引用4楼dianhui的回复:Quote: 引用2楼Simple-Soft的回复:用锁就解决了
用锁不行吧,你锁了其它窗口怎么用这个表?

你是不是对锁有什么误解


回复

使用道具 举报

千问 | 2021-1-27 05:09:37 | 显示全部楼层
数据同步,锁就OK了吧
回复

使用道具 举报

千问 | 2021-1-27 05:09:37 | 显示全部楼层
要什么锁,每个业务各自独立的队列就可以了
回复

使用道具 举报

千问 | 2021-1-27 05:09:37 | 显示全部楼层
从场景看没必要自己写一套通信可以直接用多终端(包括人工窗口的取号终端)连DB
用一张表记录每种业务的ID/办事序号的最大号码,每行一种业务
用数据库自带的行级锁(各个业务相互独立)或表级锁都可以保护多终端取号的情况
表级锁也不要紧写入速度非常快一个大厅里多不过几百用户根本不会感知到卡顿
回复

使用道具 举报

千问 | 2021-1-27 05:09:37 | 显示全部楼层
服务器接收到请求以后,将请求排队,FIFO~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行