2010-09-24 70 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以外的所有內容。通過這種方式,如果突然發生突發性事件,日曆就不會被阻塞,但如果活動較少,人們可以通過較大的窗口在慢速時段確認預訂,則可以將日曆保持較長時間。