首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在电影预订系统(如BMS)中,座位是如何被暂时阻塞的?

在电影预订系统(如BMS)中,座位是如何被暂时阻塞的?
EN

Stack Overflow用户
提问于 2022-06-02 05:40:06
回答 1查看 77关注 0票数 0

在微服务体系结构中,假设我们有一个执行预订的api。用户试图预订一个座位,但在付款模式下失败了。座位状态被阻塞了一段时间(2分钟)。这个座位怎么能在2分钟后自动释放?

如果我们认为一个批处理作业以一个频率运行,它可能在超过2分钟后释放它,这取决于它最后一次运行的时间。

对于这种问题,还有什么其他的解决办法呢?

EN

回答 1

Stack Overflow用户

发布于 2022-06-02 13:39:45

要做到这一点,有几种不同的方法。其中最常见的两种:

  1. :负责跟踪给定显示轨道预订的座位可用性的服务。当用户开始一个座位的预订过程时,它会记录一个具有唯一ID的预订,并在一个座位的“过期”时间戳上进行记录。如果预订在“过期”之前成功,则预订将转换为实际预订。如果“过期”时间戳已过,而预订未被转换,则服务部门将报告现有的座位。在此之后,服务是否和何时选择删除预订是一个实现细节(例如,您可以保留陈旧的预订,并且只在需要时才取消最老的过期预订,以确保活动预订和过期预订的总和不超过可用的座位数)。

  1. 您可以定义一个调度服务:向特定的服务提交一个表示(例如,一个请求)。该提交的结果是一个令牌,以便可以取消该计划。该服务跟踪下一个请求/操作的时间,并等待直到该点执行该request/action.

请注意,如果没有完成购买,则自动提供座位的任何方法,都存在这样一种情况,即保留座位并成功支付费用,但座位被释放回池并由其他人购买,因此必须为处理这些情况定义一些过程(例如,调节付款与签发的票)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72471176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档