跳到主要内容
CNode

多并发的情况如何实现"座位编排"?

问答
Wwinddriver发布于 11 年前最后回复 11 年前
339490

对nodejs研究不深,现在遇到一个难题无法突破,特来请教。

现在需要实现一个座位编排的功能,非常简单的逻辑: 新座位 = 从数据库查询现在已使用的最大座位号 + 1 在多个请求串行来的时候不会有问题,当多个请求同时到就会出现多个人分配到了同一个座位号

我分析了下问题应该是这样产生的: 请求A到来 -> 请求A从数据库查询现有最大座位号 -> 查询请求还未返回的同时请求B到来 -> 请求B从数据库查询现有最大座位号 -> 请求A查询请求返回 -> 请求B查询请求返回 ->...

就这样两个同时到的请求查询到了同样的最大座位号。

该如何解决呢?

查看回复

回复 (3)

W
winddriver#311 年前
引用 kateryang这不就类似写入锁的机制。你可以考虑下

@kateryang 找到这个读写锁的模块测试了下可以解决我的问题了 https://github.com/71104/rwlock

Y
yakczh#211 年前

排队就行了 查询最大座位号,分配座位号 座位号--  处理下一个请求

K
kateryang#111 年前

这不就类似写入锁的机制。你可以考虑下

参与回复

登录后即可参与回复。登录