2015-06-04 172 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想看看有什麼可用的。顯示狀態未「確認」且過期時間<當前時間的所有數據庫記錄 底線:如果結構正確,可以在沒有計時任務的情況下完成。 –