一、前置校验(redis的lua脚本实现)

1、检查库从是否充足
2、用户是否下单过该优惠券(使用Redis中的set类型来缓存下单该优惠券的用户id集合,并且要保证数据及时更新同步,即 在检验资格通过后需要向set中添加用户id)
Lua脚本需要的ARGV参数列表中有两个待定参数,分别是优惠券id 以及 用户id

二、处理业务

1、资格检验通过,则需要保证该有效订单被阻塞队列拿到,后续阻塞式执行成功,所以将“凭证”(封装好用户id、券id、订单id的订单实例)传入阻塞队列,等待异步线程阻塞式读取处理下单业务;

 wechat
天生我才必有用