使用Gatewayworker做了一个服务端,使用tcp协议和客户端进行通信,用于推送订单数据给店铺,一个店铺对应一个客户端。在redis中存储客户端的身份标识和client_id,然后thinkphp调用GatewayClient推送数据给相应的客户端。现在问题是这样的,如果某一个店铺同时收到了n个订单,Gatewayworker是不是会瞬间将这些订单推送给客户端呢?要想让客户端来得及反应,这时候是不是需要做异步消息队列了,然后设置间隔时间一条一条推送给客户端。或者有更好的解决方案呢?
希望大神可以给予解答,感激不尽!
最好的方式是将订单存在数据库里面,客户端每收到一个订单后发送一个包给服务端,服务端将当前订单设置为已发送,然后再从数据库里面读是否有新的未发送的订单,有的话就再发送,如此循环。
好的,谢谢您!