thinkphp5如何用redis做一個訂單15分鐘取消?
过去多啦不再A梦
过去多啦不再A梦 2017-06-06 09:52:43
0
5
1677

1.我想用佇列偵測下單的訂單有沒有超過15分鐘,如果超過15分鐘就修改資料庫改為逾時取消,但我不知道怎麼下手

过去多啦不再A梦
过去多啦不再A梦

全部回覆(5)
漂亮男人

可以將這個功能做成使用者行為觸發,例如使用者查看訂單時才判斷未付款且超過15分鐘就更改訂單狀態為逾時取消。未查看的、狀態未更新的訂單可能寫入計劃任務凌晨更新。在訂單量大的情況下,不建議全部訂單都即時同步狀態,也沒意義。

刘奇

資料庫輪詢:使用定時任務輪詢資料庫,查詢出相關訂單處理,量不大的情況使用,小項目中這個方法簡單實用便於維護

環形隊列:參考:http://mp.weixin.qq.com/s/mvF...

隊列服務:使用延時隊列處理 參考:http://tech.youzan.com/queuin...

小葫芦

比較好的解決方案是用時間輪,即樓上所說的環形隊列
用Redis鍵空間通知也可以實現,設置過期時間為15分鐘, 監聽鍵刪除事件, 做相應的操作

phpcn_u1582

用定時器不好麼

滿天的星座

不用redis

用MySQL即可實現

方案:
寫個PHP腳本,守護程序執行,
while循環,查庫,下單時間超過15分鐘,並且是未支付, 未發貨的訂單,就執行取消操作

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板