国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于redis的消息隊列和鍵空間通知實現商品搶購和限時支付

saucxs / 2685人閱讀

摘要:基于的消息隊列實現固定庫存商品搶購商品總庫存需要在后臺寫入到庫存隊里中提前寫入獲取庫存并減一寫入隊列搶購成功售賣完畢基于上面的基礎解決購買數量存儲,超時不支付訂單取消訂單并恢復庫存商品總庫存需要在后臺寫入到庫存隊里中提前寫入

基于Redis的消息隊列實現固定庫存商品搶購
//商品總庫存需要在后臺寫入到庫存隊里中,提前寫入
$redis = new Redis();
$redis->connect("127.0.0.1",6379);
$redis->auth("alloc");
$redis->select(1);
//獲取庫存并減一寫入隊列
$k = $redis->lPop("sale_count");
echo $k;
if($k>1){
    if($k-1 == 0){
        $redis->del("sale_count");
    }else{
        $redis->lPush("sale_count",$k-1);
    }
    echo "搶購成功!";
}else{
    echo "售賣完畢!";
}
基于上面的基礎解決購買數量存儲,超時不支付訂單取消訂單并恢復庫存
connect("127.0.0.1", 6379);
$redis->auth("alloc");
$redis->select(1);
//
$user_id = rand(1, 10000);//隨機模擬用戶ID 不去重復了實際情況下沒有重復的
$buy_num = rand(1, 9);//隨機模擬購買數量
//獲取庫存并減一寫入隊列
$k = $redis->lPop("sale_count");
if ($k > 1) {
    if ($k - $buy_num <= 0) {
        exit("庫存不足");
    }else{
        
        $redis->rPush("get_good_list", $user_id);//將搶到順序插入隊列,在守護進程1中處理
        $redis->setex($user_id, 1800, $buy_num);//設置超時時間30分鐘
        $redis->rPush("sale_count", $k - $buy_num);
        
    } 
    
    echo "搶購成功!,請五分鐘內支付";
} else {
    echo "售賣完畢!";
}
connect("127.0.0.1", 6379);
$redis->auth("alloc");
$redis->select(1);
//while (1){
    $user_id = $redis->lPop("get_good_list");
    if($user_id){
        //獲取購買數量
        $buy_num = $redis->get($user_id);
        //創建訂單
        $order_no = createOder($user_id,$buy_num);
        //設置訂單超時時間
        $redis->setex($order_no,300,1);//5分鐘未支付通知Daemon2.php

    }
//}
connect("127.0.0.1", 6379);
$redis->auth("alloc");
$redis->select(1);
//不超時
$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
//創建事件監聽,__keyevent@1__:expired,數字1代表數據庫序號
$redis->psubscribe(array("__keyevent@1__:expired"), "keyCallback");
// 回調函數,這里寫處理邏輯
function keyCallback($redis, $pattern, $chan, $order_no){
    //獲取訂單信息 獲取購買數量
    $buy_num = getOderInfo($order_no);
    //關閉訂單
    closeOrder();
    //加入庫存
    $redis->rPush("sale_count",$redis->lPop("sale_count")+$buy_num);
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29690.html

相關文章

  • PHP面試題

    摘要:質量高在設計時,可重用現有的,在以前的項目的領域中已被測試過的類使系統滿足業務需求并具有較高的質量。代碼塊捕獲異常,并創建一個包含異常信息的對象。這樣可以解決超賣的問題,但是會導致文件得開銷很大。 6.你們公司是使用什么框架? 答:我們公司采用的是TP框架,運用的mysql+apache+php進行開發,因為TP框架是一個免費開源的,輕量級的php開發框架,而且是我們中國人自己開發的,...

    ls0609 評論0 收藏0
  • 「真?全棧之路」Web前端開發后端指南

    前言 在若干次前的一場面試,面試官看我做過python爬蟲/后端 的工作,順帶問了我些后端相關的問題:你覺得什么是后端? 送命題。當時腦瓦特了,答曰:邏輯處理和數據增刪改查。。。 showImg(https://user-gold-cdn.xitu.io/2019/4/24/16a4ed4fc8c18078); 當場被懟得體無完膚,羞愧難當。事后再反思這問題,結合資料總結了一下。發現自己學過的Re...

    chuyao 評論0 收藏0

發表評論

0條評論

saucxs

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<