作者q10242 (黑田佑司)
看板PHP
标题[请益] Laravel 检查资料过期的方法
时间Tue Sep 11 12:58:50 2018
我想要用Laravel做一个订单系统
下单之後五分钟没付钱订单就会失效
下订单会把货物数量扣除 让别人没办法下单
但是想不到该怎麽实作这个功能
laravel是用apache在跑
目前想到的方法
1.写daemon 定期检查 ->缺点是无论定期间隔多久都有时间差,而且怕会影响系统效能
2.有别人下单的时候或者有人想观看剩余货物数量的时候再来检查
->感觉比1合理 但是我怕有人一直F5
3.确定付完钱之後再扣物品数量
-> 网站付款方式是先离开网站本身付款完之後再回来
在这期间有可能因为系统显示有货,让两人同时出去付钱
回来却只有一个人能有货的状况。另外一个人没货可以走退款
但是会产生手续费。
我有没有其他选择?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.176.128.70
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1536641933.A.274.html
1F:→ knives: 订单成功之後,产生一个job进Queue,设定五分钟过後去检查 09/11 13:27
2F:→ knives: 该笔订单是否为有效订单 09/11 13:28
3F:→ JustGame: 下单後把订单内容存在 redis 里,资料库物品数量扣掉 09/11 13:38
4F:→ JustGame: 配合 redis keyspace notification 把过期单加回资料库 09/11 13:39
谢谢大家
我再试试看
※ 编辑: q10242 (180.176.128.70), 09/11/2018 18:07:47
5F:→ cf1064: 下单的时候,加一个过期时间栏位去记录几点几分过期 09/12 14:29
6F:推 qw2781728: 把订单分状态 写排程去跑那些失效订单 看要加会库存还 09/21 21:21
7F:→ qw2781728: 是怎样 大概就跟一楼说的差不多 09/21 21:21
8F:→ knives: 其实还有一招,连job、排程都不用,不过不保证资料一致性 09/22 15:07
9F:推 qw2781728: 楼上请说 09/22 21:21
+1我也想知道
10F:推 liisi: 应该是先把数量booked住 等到失效在释放 09/26 23:34
11F:推 liisi: 走退款流程 买家会不爽 09/26 23:36
※ 编辑: q10242 (180.176.128.70), 10/01/2018 14:49:30