我的查询开始时非常混乱,所以请帮帮我
我正在制作电影票预订项目。我希望在7分钟内阻止所选座位,直到用户付款。
我在做什么?每当用户选择座位和时间然后我将这些座位添加到" blocksseats"桌子,以便没有人可以访问这些座位&同时计时器应该在后台开始..如果用户付款,那么这些座位就分配给他了..如果他在7分钟内没有付款,那么被阻止的座位将被释放意味着我将把它们从桌子上移走。 / p>
想法很简单,但很难继续下去。
请帮助请帮助......答案 0 :(得分:2)
您不需要计时器。阻塞位置记录的时间戳。如果用户在七分钟内付款,则允许交易通过。如果用户在七分钟后尝试付款,请拒绝该事务并从blockedseats表中删除该记录。
如果其他用户尝试预订座位,请检查blockedseats表。如果块已过期,请使用新用户的新时间戳进行刷新。如果该区块仍然有效(在七分钟内),则拒绝预订请求。
可以使用cron脚本以适当的间隔清除blockedseats表。每天都说,每天?以满足您的要求。
答案 1 :(得分:0)
假设您使用的是Linux服务器,请查看cronjob。一个简单的算法是存储座位被阻塞的时间戳以及座位号。
每分钟运行一次cronjob。检查当前时间戳是否在座位被阻挡的7分钟内。删除那些不在当前时间戳的7分钟范围内的那些。该方法引入了最大公差59秒。您需要在容错和负载之间做出妥协。