定时任务:quartz的学习
cron表达式:
redis秒杀问题:
程序流程:
1:首先我们需要将数据库中的商品信息放到redis中:
在商品添加到hash的同时,为每个商品创建一个队列,队列名称为:固定的前缀+商品的id,队列的大小与该商品的数量有关
2:下单业务:
首先判断该用户是否已经下单了该商品:我们在redis中创建了一个set,存放当前商品下单的用户:
如果已经下单,返回结果
3:如果没有下单:
先从该商品的商品队列中得到id ,如果队列为空,则说明 队列中的商品都 被下单了
4:如果有商品没有被下单:
将用户信息保存到 下单用户的set中,并且将 订单信息写到下单的list中,订单信息:员工id和商品id
5:然后开启线程:开启线程用来操作redis中的商品数量的修改,和具体的下单信息存到 下单的 hash中
线程内容:
我们从下单的队列中:得到下单信息:用户信息,和商品的id,如果没有得到订单信息,说明订单都已将处理完了
然后利用同步代码块,修改该商品 库存的数量: