2010-09-24 36 views
2

我正在使用Google Calendar API和PHP自动化预订流程的Web应用程序。当用户第一次选择日期时,我的脚本会在日历上创建一个“暂定”事件,以防止其他用户尝试选择相同的日期。但是,为了避免不遵守的用户创建的试用日期的激增,我希望对交易过程施加时间限制,以便在用户离开应用程序或时间过长时,将删除暂定日期从日历中(并因此可供其他用户保留)。超时交易/会话的最佳策略?

我们目前正在将约会存储在MySQL数据库以及Google Cal中,所以这里是我当前的策略:首次创建临时约会时,将临时约会存储在数据库中,并附上一个时间戳。然后,计划扫描整个数据库的cron作业(可能每隔一小时左右),并根据时间戳的年龄(从db和google cal中删除它们)删除暂定的预定。

理论上,这应该起作用。但是,我的问题是:是否有更简单/更优雅的方式来做到这一点,我没有想到?有没有人有更好的解决这个问题?

回答

0

当有人试图与临时约会同时创建一个约会时,请检查该临时约会是否“太旧”。如果是:删除它并创建一个新的。如果不是这样:告诉用户当时已经创建了一个预约。

+0

我实际上已经考虑过这个解决方案......它是可行的,但缺点是它不能防止Google日历混乱不堪,因为没有人试图覆盖死去的暂定约会。不过,这是一个很好的建议,也许我可以将其与我目前的战略一起实施。 – 2010-09-24 17:29:10

1

不确定这是否“更好”,但如果主要目标是限制混乱,则可以在给定时间段内限制暂定事件的数量,并让您的cron作业在每个时间段内删除除最新N以外的所有内容。通过这种方式,如果突然发生突发性事件,日历就不会被阻塞,但如果活动较少,人们可以通过较大的窗口在慢速时段确认预订,则可以将日历保持较长时间。