国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

黑馬點評用rabbitmq實現(xiàn)優(yōu)惠券秒殺下單后的異步操作數(shù)據(jù)庫數(shù)據(jù)

這篇具有很好參考價值的文章主要介紹了黑馬點評用rabbitmq實現(xiàn)優(yōu)惠券秒殺下單后的異步操作數(shù)據(jù)庫數(shù)據(jù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

導(dǎo)入配置

		<dependency>		
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-amqp</artifactId>
			<version>2.7.7</version>
		</dependency>

配置文件配置

黑馬點評rabbitmq,rabbitmq,數(shù)據(jù)庫,junit

JavaConfig配置

@Component
@Slf4j
public class RabbitmqConfig implements InitializingBean {
    @Resource
    private RabbitTemplate rabbitTemplate;

    @Override
    public void afterPropertiesSet() throws Exception {
        log.info("初始化配置rabbitmq配置");

//        rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter(new ObjectMapper()));
        rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
            @Override
            public void confirm(CorrelationData correlationData, boolean b, String s) {
                if(!b)
                {
                    log.error("發(fā)送消息到mq失敗,原因:{}",s);
                }
            }
        });
        rabbitTemplate.setReturnCallback(new RabbitTemplate.ReturnCallback() {
            @Override
            public void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) {
                log.error("消息返回回調(diào)觸發(fā),交換機:{},路由:{},消息內(nèi)容:{},原因:{}",exchange,routingKey,message,replyText);
            }
        });
    }
}

通過@Bean注入MessageConverter,保證消息的正確傳輸

    @Bean
    public MessageConverter jsonMessageConverter(ObjectMapper objectMapper) {
        return new Jackson2JsonMessageConverter(objectMapper);
    }

修改后的代碼

    @Override
    //關(guān)于事務(wù)注解
    public Result seckillVoucher(Long voucherId) {
//        1,執(zhí)行l(wèi)ua腳本,lua腳本用于判斷庫存是否充足,扣庫存操作
        Long userId=UserHolder.getUser().getId();
        long orderId=redisIDworker.nextId("order");

        //執(zhí)行此操作前保證,用戶查看優(yōu)惠券的請求,和添加優(yōu)惠券時 已經(jīng)將秒殺優(yōu)惠圈的庫存數(shù)量添加到了redis中
        Long result=stringRedisTemplate.execute(
                SECKILL_SCRIPT,
                Collections.emptyList(),
                voucherId.toString(),
                userId.toString(),
                String.valueOf(orderId)
        );
        //獲取lua腳本返回值
        int r=result.intValue();
        if(r!=0)
        {
            return Result.fail(r==1?"庫存不足":"不能重復(fù)下單");
        }
//        //獲取代理對象
//        IVoucherOrderService proxy= (IVoucherOrderService) AopContext.currentProxy();
        //異步寫數(shù)據(jù)庫
        VoucherOrder voucherOrder = new VoucherOrder();
        voucherOrder.setId(orderId);
        voucherOrder.setUserId(userId);
        voucherOrder.setVoucherId(voucherId);
        rabbitTemplate.convertAndSend(SaveVoucherConstants.SECKILL_VOUCHER_SAVE_QUEUE,voucherOrder);
        log.info("發(fā)送保存秒殺券訂單信息成功:{}",orderId);
        return Result.ok("seckSuccess");
    }

監(jiān)聽器文章來源地址http://www.zghlxwxcb.cn/news/detail-852699.html

@Component
@Slf4j
public class AsyncSaveVoucherListener {
    @Resource
    private IVoucherOrderService voucherOrderService;
    @Resource
    private ISeckillVoucherService seckillVoucherService;
    @RabbitListener(queuesToDeclare = {@Queue(name= SaveVoucherConstants.SECKILL_VOUCHER_SAVE_QUEUE)})
    public void AsyncSave(VoucherOrder voucherOrder)
    {
        log.info("接收到存儲訂單信息的消息,{}", JSON.toJSON(voucherOrder).toString());
        boolean success = seckillVoucherService.update().setSql("stock=stock-1").eq("voucher_id", voucherOrder.getVoucherId()).gt("stock", 0).update();
        voucherOrderService.save(voucherOrder);
        log.info("訂單信息存儲完成?{}",success);
    }
}

到了這里,關(guān)于黑馬點評用rabbitmq實現(xiàn)優(yōu)惠券秒殺下單后的異步操作數(shù)據(jù)庫數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 黑馬點評Redis實戰(zhàn)(優(yōu)惠卷秒殺)

    黑馬點評Redis實戰(zhàn)(優(yōu)惠卷秒殺)

    本文是上一篇文章的后續(xù),上一篇文章鏈接 馬點評Redis實戰(zhàn)(短信登錄;商戶查詢緩存) id是一個訂單必備的屬性,而訂單的id屬性是必須唯一的,首先我們會想到使用數(shù)據(jù)庫主鍵id,并設(shè)置為自增。這樣似乎就能滿足唯一性。 但是,這樣會存在一些問題: id的規(guī)律太過明顯,因

    2024年02月04日
    瀏覽(19)
  • 微信小程序?qū)崿F(xiàn)一些優(yōu)惠券/卡券

    微信小程序?qū)崿F(xiàn)一些優(yōu)惠券/卡券

    ?? 前幾周有小伙伴問我如何用css實現(xiàn)一些優(yōu)惠券/卡券,今天就來分享一波吧!速速來Get吧~ ??文末分享源代碼。記得點贊+關(guān)注+收藏! 2.1 實現(xiàn)內(nèi)凹圓角 假設(shè)我們要實現(xiàn)這樣的一個效果,兩側(cè)透明內(nèi)圓角+外側(cè)投影,有幾種實現(xiàn)方式呢? 2.1.1 方法一:半圓偽元素(投影不準(zhǔn)確

    2024年02月09日
    瀏覽(21)
  • 【Spring Boot+Kafka+Mysql+HBase】實現(xiàn)分布式優(yōu)惠券后臺應(yīng)用系統(tǒng)(附源碼)

    【Spring Boot+Kafka+Mysql+HBase】實現(xiàn)分布式優(yōu)惠券后臺應(yīng)用系統(tǒng)(附源碼)

    需要全部代碼請點贊關(guān)注收藏后評論區(qū)留言私信~~~ 分布式優(yōu)惠券后臺應(yīng)用系統(tǒng)服務(wù)于兩類用戶群體,一類是商戶,商戶可以根據(jù)自己的實際情況即進行優(yōu)惠券投放,另一類是平臺消費用戶,用戶可以去領(lǐng)取商戶發(fā)放的優(yōu)惠券 分布式優(yōu)惠券后臺應(yīng)用系統(tǒng)采用SpringBoot作為主體開

    2024年02月10日
    瀏覽(23)
  • 小程序中如何核銷訂單和優(yōu)惠券

    小程序中如何核銷訂單和優(yōu)惠券

    小程序已成為許多商家線上線下開展業(yè)務(wù)的重要渠道??蛻粼谛〕绦蛑邢聠?領(lǐng)券后,可能需要商家現(xiàn)場掃碼核銷,例如超市購物、賣票、游樂園等線下場景。下面就介紹小程序中如何核銷訂單和優(yōu)惠券。 一、訂單核銷 訂單核銷是指商家在小程序中確認(rèn)顧客已經(jīng)支付的訂單并

    2024年03月21日
    瀏覽(40)
  • 機器學(xué)習(xí):基于邏輯回歸對優(yōu)惠券使用情況預(yù)測分析

    機器學(xué)習(xí):基于邏輯回歸對優(yōu)惠券使用情況預(yù)測分析

    作者:i阿極 作者簡介:Python領(lǐng)域新星作者、多項比賽獲獎?wù)撸翰┲鱾€人首頁 ??????如果覺得文章不錯或能幫助到你學(xué)習(xí),可以點贊??收藏??評論??+關(guān)注哦!?????? ??????如果有小伙伴需要數(shù)據(jù)集和學(xué)習(xí)交流,文章下方有交流學(xué)習(xí)區(qū)!一起學(xué)習(xí)進步!?? 訂閱專欄案

    2024年02月02日
    瀏覽(25)
  • 【java爬蟲】將優(yōu)惠券數(shù)據(jù)存入數(shù)據(jù)庫排序查詢

    【java爬蟲】將優(yōu)惠券數(shù)據(jù)存入數(shù)據(jù)庫排序查詢

    本文是在之前兩篇文章的基礎(chǔ)上進行寫作的 (1條消息) 【java爬蟲】使用selenium爬取優(yōu)惠券_haohulala的博客-CSDN博客 (1條消息) 【java爬蟲】使用selenium獲取某寶聯(lián)盟淘口令_haohulala的博客-CSDN博客? 前兩篇文章介紹了如何獲取優(yōu)惠券的基礎(chǔ)信息,本文將獲取到的基本信息存到數(shù)據(jù)庫中

    2024年02月16日
    瀏覽(26)
  • 兩天擼一個優(yōu)惠券小程序,記錄下開發(fā)的小小經(jīng)驗

    兩天擼一個優(yōu)惠券小程序,記錄下開發(fā)的小小經(jīng)驗

    下載微信開發(fā)者工具???? 新建項目文件夾project,比如 D:workProjectproject 在project下創(chuàng)建src目錄放微信小程序的源碼,.gitignore文件是用來git上傳gitee上忽略一些文件用的,另外三個js文件時用來混淆小程序源碼的腳本,將腳本和小程序源碼分開是為了腳本更好處理混淆過程。

    2023年04月08日
    瀏覽(22)
  • 【實踐篇】教你玩轉(zhuǎn)JWT認(rèn)證---從一個優(yōu)惠券聊起

    【實踐篇】教你玩轉(zhuǎn)JWT認(rèn)證---從一個優(yōu)惠券聊起

    最近面試過程中,無意中跟候選人聊到了JWT相關(guān)的東西,也就聯(lián)想到我自己關(guān)于JWT落地過的那些項目。 關(guān)于JWT,可以說是分布式系統(tǒng)下的一個利器,我在我的很多項目實踐中,認(rèn)證系統(tǒng)的第一選擇都是JWT。它的優(yōu)勢會讓你欲罷不能,就像你領(lǐng)優(yōu)惠券一樣。 大家回憶一下一個

    2024年02月05日
    瀏覽(24)
  • 智慧影院--java開源電影票優(yōu)惠券制作系統(tǒng)快速開發(fā)

    智慧影院--java開源電影票優(yōu)惠券制作系統(tǒng)快速開發(fā)

    搭建一個智慧影院可以通過使用Java開源電影票優(yōu)惠券制作系統(tǒng)來快速開發(fā)。這個系統(tǒng)可以幫助影院管理電影票的銷售和優(yōu)惠活動,提供便捷的購票方式和優(yōu)惠券的生成與使用功能。 首先,我們需要建立一個數(shù)據(jù)庫來存儲電影、影廳、放映計劃、訂單等信息。在數(shù)據(jù)庫中,我

    2024年02月13日
    瀏覽(18)
  • 淘寶APP商品詳情接口(商品信息,價格銷量,優(yōu)惠券信息,詳情圖等)

    淘寶APP商品詳情接口(商品信息,價格銷量,優(yōu)惠券信息,詳情圖等)

    淘寶APP商品詳情接口(商品信息接口,價格銷量接口,優(yōu)惠券信息接口,詳情圖接口等)代碼對接如下: 公共參數(shù) 名稱 類型 必須 描述 key String 是 調(diào)用key(必須以GET方式拼接在URL中),點擊獲取請key和secret secret String 是 調(diào)用密鑰 api_name String 是 API接口名稱(包括在請求地址

    2024年02月12日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包