对nodejs研究不深,现在遇到一个难题无法突破,特来请教。
现在需要实现一个座位编排的功能,非常简单的逻辑: 新座位 = 从数据库查询现在已使用的最大座位号 + 1 在多个请求串行来的时候不会有问题,当多个请求同时到就会出现多个人分配到了同一个座位号
我分析了下问题应该是这样产生的: 请求A到来 -> 请求A从数据库查询现有最大座位号 -> 查询请求还未返回的同时请求B到来 -> 请求B从数据库查询现有最大座位号 -> 请求A查询请求返回 -> 请求B查询请求返回 ->...
就这样两个同时到的请求查询到了同样的最大座位号。
该如何解决呢?
回复 (3)
K
这不就类似写入锁的机制。你可以考虑下
Y
排队就行了 查询最大座位号,分配座位号 座位号-- 处理下一个请求
W
引用 kateryang这不就类似写入锁的机制。你可以考虑下
@kateryang 找到这个读写锁的模块测试了下可以解决我的问题了 https://github.com/71104/rwlock
参与回复
登录后即可参与回复。登录