【发布时间】:2019-10-27 04:49:27
【问题描述】:
当我点击“下订单”时,我已开始交易并将列 is_payment_processing 设置为 True,然后将用户带到商家网站,然后可能存在三种可能性:
- 用户登陆成功回调页面
- 用户登陆失败回调页面
- 用户既没有成功也没有失败回调,因为他关闭了窗口。
在第三种情况下:产品将保持 is_payment_processing 为 True 的状态。并且,尝试签出同一产品的其他用户将无法这样做。但在这种情况下,我可能会失去一些客户并造成一些不便。
希望每分钟运行一个 cron 作业,该作业将跟踪该列的最后修改时间,如果超过 3 分钟未更改,则将该标志设置为 False。
这里最好的方法应该是什么?在一般情况下这是如何实现的? (并发控制)
另一个想法: Visit this question
【问题讨论】:
-
您是否有机制可以与商家网站核对以了解交易是否仍在进行中?
-
@AbhishekAgarwal:不,我不能,除非控件不进行成功或失败回调。因为我在这些回调 url 中从供应商那里收到参考 id,我可以用它来查询状态。
标签: python mysql django concurrency e-commerce