[請益] Laravel 檢查資料過期的方法

看板PHP作者 (黑田祐司)時間5年前 (2018/09/11 12:58), 5年前編輯推噓4(407)
留言11則, 5人參與, 5年前最新討論串1/1
我想要用Laravel做一個訂單系統 下單之後五分鐘沒付錢訂單就會失效 下訂單會把貨物數量扣除 讓別人沒辦法下單 但是想不到該怎麼實作這個功能 laravel是用apache在跑 目前想到的方法 1.寫daemon 定期檢查 ->缺點是無論定期間隔多久都有時間差,而且怕會影響系統效能 2.有別人下單的時候或者有人想觀看剩餘貨物數量的時候再來檢查 ->感覺比1合理 但是我怕有人一直F5 3.確定付完錢之後再扣物品數量 -> 網站付款方式是先離開網站本身付款完之後再回來 在這期間有可能因為系統顯示有貨,讓兩人同時出去付錢 回來卻只有一個人能有貨的狀況。另外一個人沒貨可以走退款 但是會產生手續費。 我有沒有其他選擇? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.128.70 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1536641933.A.274.html

09/11 13:27, 5年前 , 1F
訂單成功之後,產生一個job進Queue,設定五分鐘過後去檢查
09/11 13:27, 1F

09/11 13:28, 5年前 , 2F
該筆訂單是否為有效訂單
09/11 13:28, 2F

09/11 13:38, 5年前 , 3F
下單後把訂單內容存在 redis 裡,資料庫物品數量扣掉
09/11 13:38, 3F

09/11 13:39, 5年前 , 4F
配合 redis keyspace notification 把過期單加回資料庫
09/11 13:39, 4F
謝謝大家 我再試試看 ※ 編輯: q10242 (180.176.128.70), 09/11/2018 18:07:47

09/12 14:29, 5年前 , 5F
下單的時候,加一個過期時間欄位去記錄幾點幾分過期
09/12 14:29, 5F

09/21 21:21, 5年前 , 6F
把訂單分狀態 寫排程去跑那些失效訂單 看要加會庫存還
09/21 21:21, 6F

09/21 21:21, 5年前 , 7F
是怎樣 大概就跟一樓說的差不多
09/21 21:21, 7F

09/22 15:07, 5年前 , 8F
其實還有一招,連job、排程都不用,不過不保證資料一致性
09/22 15:07, 8F

09/22 21:21, 5年前 , 9F
樓上請說
09/22 21:21, 9F
+1我也想知道

09/26 23:34, 5年前 , 10F
應該是先把數量booked住 等到失效在釋放
09/26 23:34, 10F

09/26 23:36, 5年前 , 11F
走退款流程 買家會不爽
09/26 23:36, 11F
※ 編輯: q10242 (180.176.128.70), 10/01/2018 14:49:30
文章代碼(AID): #1RbqkD9q (PHP)