事件预订中的并发性

时间:2013-07-04 10:24:07

标签: concurrency optimistic-concurrency

我正在实施一个活动预订网站。从商店的角度来看,只有当座位实际被预订给顾客时,座位才必须从数据库中减少。

我的问题是关于并发性。例如,假设有一个可用座位数量为1的事件。

如果有2个用户同时尝试购买相同的活动座位,当其中一个客户已成功支付座位时,我希望第二个客户无法支付 座位,因为座位已经预订。

是否可以进行此类预订,以便其他客户无法预订?

1 个答案:

答案 0 :(得分:0)

如果您的数据库不保证您有这样的并发支持(我不是那些专家),我建议为您的应用程序实施一个特殊的内部服务,负责预订座位。

所有异步预订请求都将被置于同步队列中,该队列将由BookingService使用。然后结果消息将被发送给发行者。

这样,只需一个预订实体,就不会有比赛,因此没有双重预订。