0

我正在写一个用户可以订购产品的网站,但问题是即使用户注销/关闭浏览器等,产品也应该在 5 分钟后自动结帐(执行 PHP 脚本,包括 MySQL 查询)。有没有人有问题类似于此。我应该如何进行编码?

4

7 回答 7

1

将与要签出的产品相关的信息存储在数据库中。每分钟运行的 cron 作业将导致结帐 5 分钟前的产品。

于 2012-08-08T19:59:15.213 回答
1

这就是我要做的。据我所知,MySQL 不能有定时延迟。您可以有一个运行和执行语句的 cron 作业。我要做的是在购物车表中创建一个额外的字段并设置未来的结帐时间。创建一个每分钟在服务器上运行的 cron 作业。让那个 cron 工作对结帐时间少于当前时间的购物车进行快速轮询。如果找到,请在该购物车上运行结帐程序,然后将其删除或将其标记为已签出,以便它不会再次重新签出。

虽然我无法为您提供示例代码,因为您没有提供任何内容,但这至少会给您一个起点。

于 2012-08-08T19:59:54.733 回答
1

由于这是一个重复的自动化任务,您需要设置一个 cron 或其他任务调度程序。粗略地说,这就是它的工作方式:

  1. 当用户将产品添加到购物车时,它会进入数据库,并带有一个指示其未签出的标志以及添加到数据库/购物车的时间戳。

  2. 如果产品是由用户从浏览器显式结帐的,则更新此标志以反映相同。

  3. cron 每隔一两分钟唤醒一次,并检查此表中添加到购物车的商品的时间戳,而结账标志未更新并在 5 分钟之前添加。

  4. 它检查此类产品并更新标志。

请注意,您仍然需要进一步调整此流程以处理诸如如果用户在您的 cron 执行相同操作时手动签出会发生什么等情况

但简而言之,我认为这就是我将如何着手解决这个问题

于 2012-08-08T20:00:58.353 回答
1

一个人肯定想要与逛商店类似的体验吗?

喜欢捡东西,四处游荡。

也许那个人已经决定把篮子留在柜台了?一定要在一段时间内提供产品并通知他们时间到了(或需要在 X 分钟内购买)

那么为什么自动结帐的东西呢?

有人假设您不希望一个人决定不买东西而您正在拿现金?也许那个人的互联网连接已经死/笔记本电脑没电了/...?

请让他们必须通过结帐,这将比自动出售他们可能不想要的东西支付更好的红利....

于 2012-08-08T20:14:03.960 回答
0

我真的认为 5 分钟对于这种验证来说持续时间很短,但是你应该有一个 cron 作业,它每 5-10 分钟运行一个 php 脚本来验证用户活动的最后日期和最后(未完成的)订单。如果日期最小,则实际日期time()减去 5 分钟,那么您应该从 db.xml 中删除该用户的条目。

验证应该从订单表中进行,而不是针对每个现有用户。

于 2012-08-08T20:02:34.150 回答
0

如果用户要离开页面,我想他请求了该页面(它不是自动执行的,就像 cronjob 一样)。

php 的正常行为是完全执行脚本,即使在此期间 usr 离开也是如此。

于 2012-08-08T20:56:34.863 回答
0

不过,这只是一种闲置——这种购物体验是针对一次性产品(如古董)还是普通商品(如杂货)?

如果是后者而不是前者,何必呢?当然,一家好的商店可以补货,因此无论如何都可以以给定的价格销售该特定产品。如果前者需要拍卖。

于 2012-08-08T21:03:11.980 回答