文章目录

  • SkillGoodService 改造
SkillGoodService 改造
package com.gblfy.service;import com.gblfy.dao.SkillOrderRepository;
import com.gblfy.entity.SkillEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;import javax.transaction.Transactional;@Service
public class SkillGoodService {public static final String SKILL_GOODS_PHONE = "SKILL_GOODS_PHONE";public static final String SKILL_GOODS_LIST = "SKILL_GOODS_LIST";public static final String SKILL_GOODS_ONLY = "SKILL_GOODS_ONLY";@Autowiredprivate RedisTemplate redisTemplate;@Autowiredprivate MutilThreadOrder mutilThreadOrder;@Transactionalpublic void add(Long productId, String userId) throws Exception {//判断这个用户是否参加过抢单Long time = redisTemplate.boundHashOps(SKILL_GOODS_ONLY).increment(userId, 1L);if(time>1){throw new Exception("重复抢单,不要太贪心");}// 先封装对象 并且放入redis 队列SkillEntity skillEntity = new SkillEntity();skillEntity.setProductId(productId);skillEntity.setUserId(userId);redisTemplate.boundListOps(SKILL_GOODS_LIST).leftPush(skillEntity);mutilThreadOrder.createOrder();}
}

秒杀场景_重复抢单问题分析与实现_03相关推荐

  1. 秒杀场景_解决秒杀超卖问题_04

    文章目录 一.商品微服务改造 二.秒杀微服务改造 2.1. SkillGoodService 改造 2.2. MutilThreadOrder 改造 一.商品微服务改造 SkillGoodServic ...

  2. 秒杀场景_多线程异步抢单队列分析与实现_02

    文章目录 1. 实体 2. Service改造 3. 启动类 1. 实体 package com.gblfy.entity;import java.io.Serializable;/*** 用户排队抢 ...

  3. 秒杀场景_同步秒杀分析和实战_01

    文章目录 一.应用部署准备 1. mysql安装部署 2. redis安装部署 3. nacos安装部署 二.数据库准备 2.1. 创建数据库 2.2. 初始化表结构 2.3. 搭建微服务父工程 三. ...

  4. mysql去掉秒杀场景_秒杀场景下mysql减库存逻辑优化

    [问题背景] 某天早上做活动,流量大量增长,导致大量更新库存操作失败. 操作mysql返回的错误均为"Lost Connection to mysql server",即mysql ...

  5. 记一次秒杀重复抢单问题

    背景描述: 系统给APP用户(客户经理)定时推送一批客户资源数据,这批数据在不同的客户经理登录APP都能看见,然后点击抢的按钮,就可以获取这个客户了,这种场景类似于秒杀抢单,存在多人同时点击按钮抢人, ...

  6. 数据库并发抢红包_秒杀场景实践之抢红包

    前言 秒杀场景在生活中几乎随处可见, 不论是商品抢购.春运抢票还是一个随处可见的红包, 都会涉及到秒杀的场景. 在面试中, 秒杀业务的设计也成为热门题目为面试官和应聘者津津乐道. 接下来, 本文将针对 ...

  7. 秒杀场景的业务和技术难点分析

    秒杀场景的业务和技术难点分析开始: 一.秒杀业务需求分析 1.秒杀发生的时间节点 一般都是在新品上市,促销的时候:价格低廉 2.秒杀的目的 通过发布一定数量的秒杀商品达到促进销售的目的,吸引用户关注: ...

  8. kafka mysql秒杀框架_一次模拟简单秒杀场景的实践 Docker Node.js Kafka Redis MySQL...

    秒杀活动可以说在互联网上随处可见,从12306抢票,到聚划算抢购,我们生活的方方面面都可以看到秒杀的身影.秒杀的架构设计也是对于一个架构师架构设计能力的一次考验.本文的目的并不在于提供一个可以直接落地 ...

  9. 解决方案:重复抢单(Redis原子计数器incr)

    解决方案:重复抢单 Redis原子计数器incr 关键词 Redis Incr 操作 key(用户信息) 判断value>1 比如秒杀活动:通过对同一时刻请求数量进行了限制,一般用作对后台系统的 ...

最新文章

  1. Python正则表达式,看这一篇就够了
  2. 第8章4节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动6
  3. Java中使用递归算法实现查找树形结构中所有父级和子级节点
  4. python源码精要(5)-C代码规范
  5. HTTP、TCP、UDP,Socket,HTTPS
  6. freemark静态页面中文乱码
  7. linux c 将虚拟地址转化为物理地址_面试不懂 Linux 内存管理?我用 20 张图给你讲明白...
  8. GNOME如何使用Git
  9. 扎根CNCF社区贡献五年是怎样的体验?听听华为云原生开源团队的负责人怎么说
  10. Matplotlib 中文用户指南 3.3 使用 GridSpec 自定义子图位置
  11. 异构计算崛起,GPU加速计算服务器FP5468G2应运而生
  12. spider和python的关系_Scrapy框架-Spider和CrawlSpider的区别
  13. 一次惨痛的微软AA面经历
  14. 【转】App应用内搜索:移动搜索的新入口
  15. CCSV5菜单栏中没有Tools按钮,如何显示出来?
  16. 计算机关机时出现计划,电脑计划任务自动关机
  17. 今日干货|给视频添加字幕的软件有哪些?
  18. idea报错:org.codehaus.plexus.component.repository.exception.ComponentLookupException
  19. 一个菜鸟程序员的蜕变史
  20. 使用mdadm创建RAID

热门文章

  1. 清末那场世纪大鼠疫,他一个人救下一座城的伟大事迹远扬欧洲
  2. 陈省身数学奖获得者张继平:怎样才能学好数学?
  3. eclipse--android开发环境搭建教程
  4. 如何合理的配置线程数?
  5. 多线程笔记补充之线程通信wait和notify方法以及Lock和Condition接口的使用
  6. 判断子字符串是否出现在主字符串内
  7. TimesIsMoney
  8. opengl纹理单元
  9. NameNode 启动失败 - There appears to be a gap in the edit log. We expected txid xxx, but got tx
  10. Failed to connect to 127.0.0.1 port 1080: Connection refused package:git