- 40
- 0
用scoket做聊天程序,请求进来,我把请求放入了队列,代码如下:
rob_vest: async function (data, socket, io) {
console.log(type, '------------------------------------------')
var queue = new Queue();//创建队列
queue.push(data)//往队列里放入请求数据
get_vetst(queue,socket, io)//这是从队列取出数据
},
async function get_vetst(queue,socket, io) {
// let sequlize = await db
let len = queue.size()
if (len !== 0) {
let data = queue.pop() //从对列取出数据
//下面是一些对数据的处理以及存库操作
...
}
}
想上面这样写如果下一次的请求依赖上一次的操作表的结果会导致出现预想之外的结果,虽然是放入到了队列中,但是如果两次请求同时进来,还是会同时读取两次对列中的数据,然后同时对表进行操作,导致第二次的请求,没有得到第一次的结果,理想的流程是,两次请求进来,把两次的请求放入队列,然后会触发一个方法,这个方法读取队列中的数据,当第一次读取并且执行完一系列的操作后,在读取下一个数据再进行操作
get_vetst方法不应该依赖rob_vest
我该如何操作??各位大佬们
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

