怎么查询候诊队列变化与否,实时更新客户端显示数据。

任务:做一个查询医院候诊队列实时显示到大屏幕。
前提:医院门诊系统服务器端是其他人写的,他不肯给我做接口,我要自己另外写一个查询候诊队列的基于SSM框架的服务器端和安卓客户端,与医院门诊系统用同一个数据库。一开始我在安卓客户端用Service+Thread轮询进行http请求,然后发现太耗资源,决定用websocket,让客户端与服务器端保持连接,如果数据库有更新,服务器端给客户端进行消息推送。
难题:我该怎么查询候诊队列,实时更新客户端的显示数据?我目前的做法是,在后端轮询,先将一开始查到的候诊队列保存到list1,服务器端定时查询候诊队列,保存到list2,两个list比较,如果两个list不同,则数据库发生了变化,通知客户端查询新数据。还有没有更好的办法,请各位大神搭救!!!

2个回答

1.dwr有一个主动模式,可以了解一下,代码侵入少,改的东西不多,2.spring boot2也有服务端推送技术,
另外你的算法也太慢,如果搞并发的情况,你比较的数据是不准确的,可以和后端的同学商量,在更新数据库的同时,如果更新成功,同步把更新请求发给你就好,如果担心更新请求太多导致服务压力大,可以把更新请求放入到队列中,监控队列当队列长度达到一定时间的时候推送客户端,同时采用定时监控,如果段时间内更新数量比较少,则定时推送服务端

sw19930104
asafer 回复weixin_39825906: 在一个系统里面都不合作,你做个锤子,老实用轮询,不要用list比,这样数据多了效率低,最好在数据库里面比较或者有更新标志,写个数据库触发器或者全量推送
4 个月之前 回复
weixin_39825906
weixin_39825906 如果做门诊系统后端的人肯给我做接口,我就不用另外写一个后端了。头痛!
4 个月之前 回复

采用 Service 和 AlarmManager可以试试
https://www.jianshu.com/p/63a9c9187389

weixin_39825906
weixin_39825906 那还是安卓客户端在轮询啊
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!