看板 PHP 關於我們 聯絡資訊
我想要用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
knives: 訂單成功之後,產生一個job進Queue,設定五分鐘過後去檢查 09/11 13:27
knives: 該筆訂單是否為有效訂單 09/11 13:28
JustGame: 下單後把訂單內容存在 redis 裡,資料庫物品數量扣掉 09/11 13:38
JustGame: 配合 redis keyspace notification 把過期單加回資料庫 09/11 13:39
謝謝大家 我再試試看 ※ 編輯: q10242 (180.176.128.70), 09/11/2018 18:07:47
cf1064: 下單的時候,加一個過期時間欄位去記錄幾點幾分過期 09/12 14:29
qw2781728: 把訂單分狀態 寫排程去跑那些失效訂單 看要加會庫存還 09/21 21:21
qw2781728: 是怎樣 大概就跟一樓說的差不多 09/21 21:21
knives: 其實還有一招,連job、排程都不用,不過不保證資料一致性 09/22 15:07
qw2781728: 樓上請說 09/22 21:21
+1我也想知道
liisi: 應該是先把數量booked住 等到失效在釋放 09/26 23:34
liisi: 走退款流程 買家會不爽 09/26 23:36
※ 編輯: q10242 (180.176.128.70), 10/01/2018 14:49:30