谷粒商城实战(030 业务-秒杀功能1)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第311p-第p314的内容


介绍

秒杀系统应该独立部署



8点开始秒杀 10点结束


秒杀价格 和 多少件(库存)


新建项目(p312)



加redis

加远程调用 openFeign

引入common并且排除seata

配置各种信息

使用@EnableDiscoveryClient开启注册功能,保证可以被服务中心发现

这里报错,找不到公共配置里的数据源,这里排除掉DataSource就行

秒杀流程

可以提前一天将需要秒杀的数据添加到缓存中,降低对服务器压力的影响

这里使用定时任务功能 上一张支付宝对账也需要使用到定时任务功能

害怕redis压力大 可以先发到mq,mq压力不大


流行的定时任务框架quartz
可以用java原生的java.util.Timer类也可以用spring支持的

整合quartz定时任务

这里年spring不支持,用前六个就行

7/5 代表第7秒的时候之后每隔5秒执行一次

*/5代表启动的时间之后每隔5秒执行一次


这里也可以使用一个cron在线生成器

在线Cron表达式生成器


@EnableScheduling开启定时任务

@Component放在容器中

spring原生Scheduling和quartz的区别


中间差了4秒 这里是阻塞的

解决方式

这里的线程池设置的线程数只有1 所以会阻塞

切记:这里有些版本好使,有些不行

异步任务

要开启@EnableAsync加上@Async 这两个注解确实可以实现异步,已测试

它们的源码位置





相关推荐
小马哥程序开发9 分钟前
[点赞收藏免费领取 · 项目源码]57105基于Spring Boot的充电桩管理系统的设计与实现
java·spring boot·源码·课程设计·毕设·大作业·课设
panpan161914 分钟前
Redis命令大全
redis
九皇叔叔40 分钟前
【09】SpringBoot4 MyBatisPlus 增删改查(CRUD)
java·mybatis·mybatisplus
CS创新实验室41 分钟前
为什么三台机器就能选出一个“带头大哥“?——Raft 一致性算法,一次讲透
分布式·操作系统
白杨尚青1 小时前
C++入门篇(十):string(上)——认识string:构造与三大遍历(一条龙讲透operator[]、迭代器、auto、范围for)
java·开发语言·c++·笔记·stl
anew___1 小时前
《从零手写操作系统 (11):文件系统初探——initrd与VFS抽象层》
java·javascript·算法
天天向上2911 小时前
Spring AI 实战:14 个踩坑记录,其中一个让我的测试全绿但产品是坏的
java·开源
正在走向自律2 小时前
从只写接口到独立交付前后端,飞算JavaAI能给Java后端工程师多少溢价?
java·springboot·ai编程·全栈开发·java求职·飞算javaai·金九银十
后端LV2 小时前
一个注解不用写,给你的 Spring Boot 接口加上限流、日志、指标和钉钉告警
spring
java1234_小锋2 小时前
Redis 宣布正式接入 AI
数据库·人工智能·redis