0

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

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

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

是否可以进行这样的预订以使其他客户无法预订?

4

1 回答 1

1

如果您的数据库不能保证您提供这种并发支持(而且我不是这方面的专家),我建议为您的应用程序实现一个特殊的内部服务,该服务将负责预订座位。

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

这样一来,只有一个预订实体,就不会发生比赛,因此不会出现重复预订。

于 2013-07-04T10:32:39.800 回答