2015-06-04 169 views
0

我正在建立一个预订系统,并希望能够解决这个问题的最佳方法。每天都有可预订的“插槽”(从上午7点到下午1点,&下午2点到7点)。我正在jQuery/Laravel中创建应用程序,并且已经构建了预留插槽的部分。插槽应保留最多15分钟。在此之后,如果预订尚未确认,则该插槽应该再次可用。预约系统的范围

对我来说,检查保留点是否已过期的最佳方法是什么?我有很多想法:

1)当插槽变为保留时,在数据库中插入一个expires_at时间戳。然后每分钟运行一次cron作业以查看该插槽是否已过期。如果是,请将状态更改为可用。

2)或者在页面定时器上有一个jQuery,它在插槽被保留时立即启动。一旦达到15分钟,发送一个ajax请求,将状态重新设置为'可用'。

有没有人有任何进一步的建议?

感谢

回答

0

2号将不被推荐的解决方案,如果浏览器被关闭插槽将无法再使用。

+0

是的,这是真的。所以在这个解决方案中也需要cron作业。 – V4n1ll4

+0

是的,在此解决方案中将需要cron。 – RY35

+0

你有什么建议,或者你认为1号是最好的? – V4n1ll4

-1

而不是一个cron作业,你可以使它成为查询的一部分。

[演出记录,其中状态不是“证实”和expires_at>15分钟老]

你会显示所有这些记录为“开放”给用户。

+0

这不会起作用,因为一旦用户单击预留,插槽只会被保留。这意味着expires_at只有在预留位置时才被添加。 – V4n1ll4

+0

步骤1:用户A保留一个斑点,用时间+15分钟在expires_at标记数据库中的位置。 步骤2:用户A在15分钟内未能确认预订,并且其他人可以使用。 第3步:用户B想看看有什么可用的。显示状态未“确认”且过期时间<当前时间的所有数据库记录 底线:如果结构正确,可以在没有计时任务的情况下完成。 –