客戶轉到購物車。 購物車被添加到數據庫,因爲它需要由外部服務支付。 5分鐘後你會如何刪除購物車?等待輸入時超時頁面的好方法?
我曾考慮打印「訂單將在5分鐘內重置」,然後發送ajax請求到一個腳本,該腳本將睡眠5分鐘,然後取消訂單。
有沒有更好的方法?它肯定比每5分鐘運行一次cron要好。
客戶轉到購物車。 購物車被添加到數據庫,因爲它需要由外部服務支付。 5分鐘後你會如何刪除購物車?等待輸入時超時頁面的好方法?
我曾考慮打印「訂單將在5分鐘內重置」,然後發送ajax請求到一個腳本,該腳本將睡眠5分鐘,然後取消訂單。
有沒有更好的方法?它肯定比每5分鐘運行一次cron要好。
向長時間運行的腳本發送一個ajax請求聽起來像個壞主意。你可能會運行很多睡眠腳本,這會阻塞你的服務器。
cron工作並不是一個壞主意。它可以定期通過數據庫查找過期的購物車。
如果到期查詢很快,可以更頻繁地運行,例如,每當有人添加東西到購物車,或有人試圖結帳時。
另一種方法是將過期的籃子放在db中。當用戶嘗試結帳時,您會在此時檢查到期日,讓用戶知道已過期並將其刪除。過期的籃子因爲用戶永遠不會回來而不會被移除,可以在每日/每週的整理工作中移除。
希望幫助!
保持一個PHP進程等待是一個非常糟糕的想法......它消耗了大量的系統資源和它的不可擴展性。
cron-job可能需要更多的努力才能實現,但從長遠來看,它會對您有所幫助。
我會做什麼,在數據庫行中設置expire_time
。如果他們的下一個請求已經過去了。如果他們在這段時間後回到籃下,請刪去籃子。
如果沒有別的辦法,運行該cron來清理每天都在放棄的籃子。