Thinkcmf5解決高并發秒殺方案

準備事項:

一、2個表

    1、PortalTagModel:插入秒殺成功用戶的信息。 字段:id,status

    2、SetModel:記錄開放名額的信息。字段:id,ic。

二、設置產品。

    SetModel表,添加數據。id=1,ic=3(3個名額)。

三、代碼(采用事物處理)

        $portalTagModel = new PortalTagModel();
        $setsum= new SetModel();
        Db::startTrans();
        try{
            $set=SetModel::get(1);
            if($set->ic<=0){
                die();
            }else{
                $data=['status'=>1];
                $w=[];$w['id']=1;$w['ic']=['gt',0];
                $portalTagModel->insert($data);
                $state=$setsum->where($w)->setDec('ic',1);
                if($state==0){Db::rollback();}
                Db::commit();
                print_r("完成");
                die();
            }
        } catch (\Exception $e) {
            Db::rollback();
        }
        die();

四、使用并發工具測試。

    設置50人同時并發訪問頁面,進數據庫查看入庫情況,僅3條成功入庫。

五、完畢。

  • 時間:2020-11-04 13:17:33
  • 分類:學習筆記
  • 瀏覽:3600
  • 評論:0
備案號:豫ICP備12024521號
Powered By Z-BlogPHP 技術支持:唐朝
微信万能麻将作弊器 彩票开奖25选5 (^ω^)MG恋曲1980游戏说明 (*^▽^*)MG中国厨房_官方版 50期南粤36选7走势图 14场胜负彩规则 (*^▽^*)MG德科钻石_破解版下载 网赚工资日结千元 欢乐生肖怎么回血 亿客隆 (*^▽^*)MG水晶裂谷援彩金 兼职网赚平台是真的吗 好运彩3d 福建快三统计图 (★^O^★)MG禁忌的皇权_最新版 澳门银河娱乐城-VIP 4场进球彩预测