大家好,我是方圆。这篇我们来写商品库存在缓存中的初始化、扣减和增加相关的代码,对应的分支是increase_stock_cache,源码以该分支为准。
秒杀生成订单流程图如下

商品库存的初始化使用了定时任务,由定时任务定期的执行来对其进行缓存,且缓存时间足够长。执行商品秒杀动作时,首先会去扣减分布式库存缓存,扣减成功后,对数据库商品库存进行扣减,数据库库存扣减成功后生成订单。具体的实现细节在下文中展开。
/**
* 初始化商品库存缓存
*
* @param itemId 商品ID
*/
boolean initialItemStocks(Long