求教用PHP实现类似海底捞排号或者银行排号的,小程序公众号,简单的排号实时更新就行,希望有源码的大佬能提供参考一下!谢谢啦 没有的话也可以说下原理和实现细节,不一定要用PHP,实现原理也行~

解决方案 »

  1.   

    排号用一些消息队列如RabbitMq或数据库或Redis等都可以实现,这些后段的技术与编程语言无关,php自然也是可以实现的。我看题主的主要问题是不知道如何实时更新?如果用h5的话使用websocket链接,当一个号码被使用的时候,立即通过websocket通知其他所有参与排队的客户端,更新现在的号码。php在长链接这一层面可以使用的框架有Workman,Gatewaywork,Swoole等,博主可以看相关的官方文档了解一下~
      

  2.   

      我想的是用数据库或者redis,排号是可以解决的,主要是如何联调像海底捞那种当场叫号,然后手机也更新呢,是需要同步的,比如当场叫到50号,手机也要更新到目前叫号50,因为没开发过类似的排号系统,用客户端轮询的话消耗资源会不会很大。
      

  3.   

    队列问题: 数据表本身就是排序,只是查询效率不高,可以用redis队列代替查询,注意,但不代替排队的信息如用户信息金额等。
    存储:插入用户信息,将id或者排队号存入redis队列。
    叫号:开启一个服务脚本,循环检测状态,如在redis中存储一个key,代表是否可以叫号,如可以叫号,从redis阻塞式弹出id,查询id对应的表记录,处理相关逻辑。
    通知:单独一套系统。
      

  4.   


    你把号码存放到redis里面,轮训直接读redis就好了,消耗非常小,毕竟redis支持10万QPS
      

  5.   

    看你预估使用量有多大
    普通正常的话轮询已经够了如果比较大或者考虑以后拓展 建议用socket或者推送
    我现在就在用workerman写socket服务
      

  6.   

    长时间轮询的话比较推荐socket