顾客去购物车。 Shoppingcart被添加到DB,因为它需要由外部服务支付。 你如何在5分钟后删除购物车?
我考虑过打印“订单将在5分钟内重置”,然后向脚本发送ajax请求,该脚本将睡眠()5分钟,然后取消订单。
有更好的方法吗?这肯定比每5分钟运行一次cron更好。
答案 0 :(得分:2)
向长时间运行的脚本发送ajax请求听起来不错。最终可能会运行大量正在运行的睡眠脚本,这会阻塞您的服务器。
一个cron工作并不是一个坏主意。它可以定期浏览数据库,查找过期的购物车。
如果到期查询很快,则可以更频繁地运行,例如每当有人向购物车添加商品或有人试图结帐时。
另一种方法是将过期的篮子放在数据库中。当用户尝试签出时,您检查当时是否到期,让用户知道它已过期并将其删除。由于用户永不回来而无法删除的已过期的篮子可以在每日/每周的整理工作中删除。
答案 1 :(得分:1)
希望有所帮助!
答案 2 :(得分:1)
保持php进程等待是一个非常糟糕的想法......它消耗了大量的系统资源,并且它不可扩展。
cron-job可能需要更多努力才能实现,但从长远来看它会对你有所帮助。
答案 3 :(得分:1)
我要做的是在数据库行中设置expire_time
。如果他们的下一个请求超过了那个时间。如果他们在那之后回到篮筐,请为他们删除篮子。
如果不出意外,请运行该cron来清理每天都被抛弃的篮子。