1,场景描述:
通过一个接口获取到一个一维数组的号码池,如下:
array(6) {
[0]=> string(12) "021-58385539"
[1]=> string(12) "021-58305867"
[2]=> string(12) "021-50430592"
[3]=> string(12) "021-58649537"
[4]=> string(12) "021-50917671"
[5]=> string(12) "021-56483701"
}
将这个号码池放入队列中,我们的人员登录系统后,第一个进来的请求获取到第一个号码,然后将该号码出队,第二个人进来取得第二个号码,依此类推...直到号码被使用完;
如果有31个人(31个请求),只有30个号码,,则第31个人取得第一个号码,为了实现这种情况,我的想法是第一个人取得的号码出队后再次进入队尾;
现在遇到的问题是:
这个接口的数据是随时变动的
每个人进来就调用这个接口的话,比如第一个人进来这6个号码都入队了,取走第一个号码,第二个人进来又将这6个号码入队了,如果使用lpush方法的话,队列中就有个重复的两组号码;
将队列元素弹出以后,将弹出的元素放入队尾,至于将6个号码同时放入队列,只需要在初始化队列时进行就可以了