一个竞价的需求,用户A出价后随即VIP出价,值执行左边的这个进程时,右边也开始出价,如何保证VIP成功,b不成功???
类似于拍卖委托人,A出价后VIP立即由系统帮着出价(同一个进程里),但在A出价与系统出价之间会有间隙(虽然在同一个进程里但还是会有间隙存在),如果在这个间隙之间B出价了,且B出的价格与系统帮vip出价的价格相容,B的出价会显示在所有用户面前(及时性的),需求就是在这个间隙不让B出价,保证vip出完价格后,才能有人出价。
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
然后B出价后也有一个vip出价?
不是出价结束后去统计一下么,难道b出完价,东西就归他了?
这不是一个事务的概念吗?
看你这个意思好像是只要之后有VIP出价,另外一边的就不能让他出价成功啊。VIP权利至高无上。要么做个延迟吧。要么这个就和预测未来的概念差不多。
这个应该是竞拍类需求吧,截止时间到了 再计算谁最后且价格最高 或者时间、价格一样判断vip优先就可以了
给vip的用户增加权重,普通用户比如1,vip:2,这样同样120的竞价,vip=120*2,这样价高者得
用redis队列, 该队列的长度约束为1. 定义队列的出入列方法:普通用户出价定义为入列, VIP出价定义为出列.
比如对一物品进行竞拍,以该物品的唯一标识建立队列。A出价成功时,入列;VIP尚未出价,B出价入列时,检测到队列长度为1,出价入列失败。当VIP出价成功时, 出列。
谢邀。
B出价 > 校验VIP是否出价(查询VIP出价记录)
已出 > B出价成功
未出 > B出价失败
看题主的描述我的理解就是一个正常的校验逻辑。
确定VIP出价资格
分布式锁,简单直接,同时只能有1人出价,可以得到A的出价记录,计算VIP的出价资格
乐观锁在出价记录中增加一个version字段,采用compare and swap机制确定VIP出价
version
锁表A出价成功后,锁表,此表数据无法读取。A的业务逻辑完成,解锁。
然后B出价后也有一个vip出价?
不是出价结束后去统计一下么,难道b出完价,东西就归他了?
这不是一个事务的概念吗?
看你这个意思好像是只要之后有VIP出价,另外一边的就不能让他出价成功啊。VIP权利至高无上。要么做个延迟吧。要么这个就和预测未来的概念差不多。
这个应该是竞拍类需求吧,截止时间到了 再计算谁最后且价格最高 或者时间、价格一样判断vip优先就可以了
给vip的用户增加权重,普通用户比如1,vip:2,这样同样120的竞价,vip=120*2,这样价高者得
用redis队列, 该队列的长度约束为1.
定义队列的出入列方法:
普通用户出价定义为入列, VIP出价定义为出列.
比如对一物品进行竞拍,以该物品的唯一标识建立队列。A出价成功时,入列;VIP尚未出价,B出价入列时,检测到队列长度为1,出价入列失败。当VIP出价成功时, 出列。
谢邀。
B出价 > 校验VIP是否出价(查询VIP出价记录)
已出 > B出价成功
未出 > B出价失败
看题主的描述我的理解就是一个正常的校验逻辑。
确定VIP出价资格
分布式锁,简单直接,同时只能有1人出价,可以得到A的出价记录,计算VIP的出价资格
乐观锁在出价记录中增加一个
version
字段,采用compare and swap机制确定VIP出价锁表
A出价成功后,锁表,此表数据无法读取。
A的业务逻辑完成,解锁。