我正在编写一个用户可以订购产品的网站,但问题是,即使用户注销/关闭浏览器等,产品也应该在5分钟后自动签出(执行PHP脚本,包括MySQL查询)。遇到了类似的问题。我该怎么做呢?
答案 0 :(得分:1)
将与要检出的产品相关的信息存储在数据库中。 每分钟运行一次的cron作业将导致5分钟的产品结帐。
答案 1 :(得分:1)
这是我要做的。据我所知,MySQL不能有定时延迟。您可以拥有一个运行并执行语句的cron作业。我要做的是在购物车表中添加一个额外的字段,并设置将来的结帐时间。创建一个在服务器上每分钟运行一次的cron作业。让cron工作只是快速查看购物车,结账时间少于当前时间。如果找到一个,请在该购物车上运行结帐程序并将其删除或将其标记为已签出,以便不再重新检查。
虽然我无法提供示例代码,因为您没有提供任何内容,但至少会给您一个跳跃点。
答案 2 :(得分:1)
由于这是一个重复的自动化任务,您需要设置一个cron或其他任务调度程序。粗略地说,这就是它的工作原理:
当用户将产品添加到购物车时,它会进入数据库,并带有一个标志,表示未检出该产品以及添加到db / shopping cart的时间戳。
如果用户明确地从浏览器结帐产品,则会更新此标志以反映相同内容。
cron每隔一两分钟醒来,并检查此表中添加到购物车的商品的时间戳,而不更新结帐标志并添加超过5分钟。
检查此类产品并更新标记。
请注意,您仍需要进一步调整此流程以处理如果用户在您的cron执行相同操作时手动检出的情况等情况
但简而言之,我认为这就是我将如何处理这个问题
答案 3 :(得分:1)
当然,一个人想要一个类似的经历去商店?
喜欢捡东西,闲逛。
也许那个人决定把篮子留在柜台?无论如何都要在一段时间内提供产品并通知他们时间已到(或需要用X分钟购买)
为什么自动结账的东西?
有人假设你不想在一个决定不买东西而你正在拿现金的人身上声名狼借?也许那些人的网络连接已经死亡/笔记本电脑没电了/...?
请让他们必须通过结账,它会比他们可能不想要的自动销售产品带来更好的红利......
答案 4 :(得分:0)
我真的认为5分钟是这种验证的持续时间很短,但你应该有一个cron作业,每5-10分钟运行一个PHP脚本,验证用户活动的最后日期和最后一个(未完成)命令。如果日期最小,则实际日期time()
减去5分钟,那么您应该从db中删除该用户的条目。
验证应该从订单表中进行,而不是对每个现有用户进行验证。
答案 5 :(得分:0)
如果用户离开页面,我想他要求页面(它不会像cronjob那样自动执行)。
php的正常行为是完全执行脚本,即使usr在此期间离开。
答案 6 :(得分:0)
虽然只是空闲 - 这种购物体验是针对一种产品(如古董)还是磨坊(如杂货)?
如果后者而不是前者,为何费心?当然,一个好的商店可以补充,因此无论如何以特定价格出售该特定产品。如果前者需要拍卖。