大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

秒殺項(xiàng)目
秒殺項(xiàng)目基本環(huán)境搭建
商品展示模塊
請求執(zhí)行秒殺模塊
秒殺流程總結(jié)

前臺頁面再次獲取秒殺結(jié)果(MQ處理之后的)

分析:再次獲取秒殺結(jié)果,獲取的是消息隊(duì)列處理后的結(jié)果,有可能秒殺成功,有可能秒殺失敗,還有可能是發(fā)送請求了,但是消息隊(duì)列的消息還沒有被消費(fèi),這個時候,就需要輪詢的調(diào)用獲取秒殺結(jié)果的函數(shù),我們可以通過window.setInterval方法實(shí)現(xiàn),該方法對應(yīng)的clearInterval可以終止輪詢,但是需要將setInterval的返回值ID作為參數(shù),所以我們需要定義一個全局變量接收setInterval的返回值。

1.  在15-seckill-web的模塊的seckill.js中的execSeckill函數(shù)中輪詢調(diào)用再次獲取秒殺結(jié)果的queryResult函數(shù)

//處理響應(yīng)結(jié)果
if(rtnMessage.errorCode == 1){
    //秒殺成功,已經(jīng)下單到MQ,返回中間結(jié)果  可以做動畫處理
    $("#seckillTip").html("<span style='color:red;'>"+ rtnMessage.errorMessage +"</span>");
    //接下來再發(fā)送一個請求獲取最終秒殺的結(jié)果(輪詢,每3秒查一次)
    seckillObj.timeFlag = window.setInterval(function(){
                                     seckillObj.func.queryResult(id)
                                },3*1000);
}else{
    //秒殺失敗 展示失敗信息
    $("#seckillTip").html("<span style='color:red;'>"+ rtnMessage.errorMessage +"</span>");
}

2. 在15-seckill-web的模塊的seckill.js中編寫queryResult函數(shù)

//查詢最終秒殺結(jié)果
queryResult:function (id) {
    $.ajax({
        url: seckillObj.url.resultURL() +id,
        type:"post",
        dataType:"json",
        success:function (rtnMessage) {
            if(rtnMessage.errorCode == 1){
                //秒殺成功
                $("#seckillTip").html("<span style='color:blue;'>"+ rtnMessage.errorMessage +"</span>");
                //終止輪詢
                window.clearInterval(seckillObj.timeFlag);
            }else if(rtnMessage.errorCode == 0){
                //秒殺失敗
                $("#seckillTip").html("<span style='color:blue;'>"+ rtnMessage.errorMessage +"</span>");
                //終止輪詢
                window.clearInterval(seckillObj.timeFlag);
            }else{
                //3秒后,依然沒有查詢到結(jié)果,那么需要3秒后,繼續(xù)發(fā)送請求獲取秒殺結(jié)果,我們這里不需要做什么
            }
        }
    });
}

3. 在15-seckill-web的seckill.js的url屬性中定義resultURL

resultURL:function () {
    return seckillObj.contextPath +"/seckill/result/";
}

4. 在15-seckill-web的GoodsController中處理獲取最終秒殺結(jié)果的請求

@PostMapping("/seckill/result/{id}")
public @ResponseBody ReturnObject result(@PathVariable("id") Integer id){
    ReturnObject returnObject = new ReturnObject();
    //在Redis中暫時沒有查詢到結(jié)果
    returnObject.setErrorCode(2);
    //用戶再次查詢,肯定處于登錄狀態(tài),可以從session獲取用戶信息(我們這里省略了用戶登錄)
    String resultJSON = redisTemplate.opsForValue().get(Constants.REDIS_RESULT + id + ":" + "888888");
    return StringUtils.isEmpty(resultJSON)?returnObject : JSONObject.parseObject(resultJSON,ReturnObject.class);
}

 

全部教程
主站蜘蛛池模板: 欧美一级毛片免费大全 | 在线精品国产第一页 | 性生大片一级毛片免费观看 | 欧美与黑人午夜性猛交久久久 | 92福利网 | 欧美三级美国一级 | 国产青草亚洲香蕉精品久久 | 国产成人久久精品二区三区 | 四虎在线观看网址 | 日韩在线欧美高清一区 | 欧美孕妇乱大交xxxxx | 亚洲网站视频 | 欧美激情(一区二区三区) | 亚洲黄色a | 欧美激情一区 | 免费观看日本特色做爰视频在线 | 精品午夜国产在线观看不卡 | 综合色久 | 色视在线 | 激情欧美| 天天狠狠弄夜夜狠狠躁·太爽了 | 九天玄帝诀免费完整观看 | 四房激情| 国产91在线 | 日韩 | 色综合网亚洲精品久久 | 日本久久中文字幕 | 免费观看国产网址你懂的 | 亚洲免费播放 | 国产特级毛片 | 国产精品福利久久 | 天天拍天天射 | 国国产自国偷自产第38页 | 久久久久无码国产精品一区 | 99热这里只有精品国产99 | 国产精品免费久久久久影院 | 亚洲国产天堂 | 99久久精品全部 | 久久精品国产曰本波多野结衣 | 国内欧美一区二区三区 | 一级做a爱片特黄在线观看免费看 | 久久一本一区二区三区 |