兜品生活邀请码管理和使用方案
2021-02-23 09:17:19 1 举报
登录查看完整内容
兜品生活邀请码管理和使用方案
作者其他创作
大纲/内容
调整过后的方案
结束
定时任务2业务流程图
注册获取邀请码流程图
存在,补满缓存(默认5万)
每次查询500条状态为未使用的邀请码,按ID升序排序
插入用户信息、插入会员邀请码业务记录
redis是否存在缓存key
先从redis获取
获取到上次处理的邀请码ID lastId
判断需要补的邀请码数量,再分批查询邀请码,按ID升序排序
定时任务开始执行
注册业务流程
定义一个上次处理截止的时间
先批量更新查出来的邀请码的状态为待使用,再循环存入redis中
注册开始
插入用户信息
查出来的记录每个都去查一下会员表,是否存在对应用户,如果存在,不做处理,不存在,设置该邀请码状态为未使用,会员ID为null。
不存在,初始化缓存
会退记录。更新处理截止时间
生成memberId
获取到
邀请码的生成与管理通过3个定时任务实现:1、定时生成一定数量的,长度为6位的邀请码定时任务:该定时任务设置3-6个月执行一次,每次生成一定数量的全新的、未使用的邀请码存入数据库,具体的执行策略和每次生成数量视系统真实的用户量做动态调整。2、定时批量的把数据库中的未使用的邀请码刷入到redis中:该定时任务默认每小时执行一次,每次会把redis中的邀请码数量补满5万个。刷入redis里的邀请码要先 更新邀请码状态为待使用,再把邀请码刷入redis中。3、定时检查一定时间内的已使用的、用户ID不为null的邀请码,检查会员表是否存在对应的用户记录,如果不存在就要更新邀请码状态为未使用,并且把用户ID设为null。
定时任务开始
获取不到
获取邀请码
把memberId带过去做绑定
查询需回退的记录,sql待补充
查询ID>lastId的邀请码记录,并且状态未已使用的,会员ID不为null的记录
定时任务3:处理使用失败的邀请码
回退业务逻辑
1、新增code派发服务,目前先加在会员服务里面新增code派发表,字段(主键、code、使用状态、业务类型、使用时间,创建时间、更新时间、行版本号)。 添加(code、业务类型)唯一索引修改会员邀请码业务表:字段(主键、code、业务编号、使用时间、创建时间、更新时间、行版本号)2、定时任务1)生成code定时任务,参数:code长度、业务类型、补满数量。2)会退code使用状态定时任务,根据code不同的使用场景写不同的实现。会员邀请码实现:根据使用时间和会员邀请码业务表,取已使用状态的对应业务类型的派发表的差集记录实现回退
收藏
0 条评论
回复 删除
下一页