FWQ
使用lua+redis解决发多张券的并发问题
使用lua+redis解决发多张券的并发问题 收藏 IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《使用lua+redis解决发多张券的并发问题》,聊聊并发、luaredis、多张券,我们一起来看看吧! 业务描述 这个接口的作用是给会员发多张券码。涉及到4张主体,分别是:用户,券,券码,用户领取记录。 下面是改造前的伪代码。 主要是因为查出券码那行存在并发安全问题,多个线程拿到同几个券码。以下都是基于如何让取券码变成原子的去展开。 public boolean sendCoupons(Long userId, Long couponId) { // 一堆校验 // ... // 查出券码 List couponCodes = couponCodeService.findByCouponId(couponId, num); // batchUpdateStatus是一个被@Transactional(propagation =…