(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210974174.2
(22)申请日 2022.08.15
(71)申请人 上海唯都市场营销策划股份有限公
司
地址 201100 上海市闵行区古美路1582号C
座5楼
(72)发明人 段相海 师成江
(74)专利代理 机构 上海乐泓专利代理事务所
(普通合伙) 31385
专利代理师 王瑞
(51)Int.Cl.
G06Q 30/02(2012.01)
G06F 16/2455(2019.01)
G06F 16/2458(2019.01)
G06F 16/25(2019.01)G06F 9/54(2006.01)
G06F 8/30(2018.01)
(54)发明名称
一种支持高并发且动态可调可配置的实时
抽奖方法及系统
(57)摘要
本发明涉及一种支持高并发且动态可调可
配置的实时抽奖方法及系统, 该方法, 包括以下
步骤: S1: 从数据库中读取奖池配置信息, 将奖池
配置信息以键值对方式保存到内存数据库中;
S2: 从内存数据库中实时读取奖池配置信息, 或
在获得有效抽奖结果后, 实时更新奖品库存信息
并回写内存数据库; S3: 在产生有效抽奖结果时,
抽奖结果信息会实时保存到消息队列; S4: 按先
进先出原则从消息队列中读取待处理消息; S5:
将抽奖结果写入 数据库进行持久化保存。 其优点
在于: 该方法实现了可动态配置奖池规则、 限定
单用户最大抽奖次数、 按照时间预设不同的中奖
概率等服务; 降低系统响应延迟, 适应高并发场
景需求, 满足互联网时代多样化的抽奖服务需
求。
权利要求书2页 说明书7页 附图2页
CN 115330451 A
2022.11.11
CN 115330451 A
1.一种支持高并发且动态可调可配置的实时抽奖 方法, 其特 征在于, 包括以下步骤:
S1: 从数据库中读取奖池配置信息, 将奖池配置信息以键值对方式保存到内存数据库
中;
S2: 从内存数据库中实时读取奖池配置信 息, 或在获得有效抽奖结果后, 实时更新奖品
库存信息并回写内存数据库;
S3: 在产生有效抽奖 结果时, 抽奖 结果信息会实时保存到消息队列;
S4: 按先进先 出原则从消息队列中读取待处 理消息;
S5: 将抽奖 结果写入数据库进行持久化保存。
2.根据权利要求1所述的支持高并发且动态可调可配置的实时抽奖方法, 其特征在于,
所述步骤S1包括:
S11: 从数据库中读取 各类配置信息, 并缓存到内存数据库中;
S12: 根据管理端的配置, 生成奖池配置信息 。
3.根据权利要求1所述的支持高并发且动态可调可配置的实时抽奖方法, 其特征在于,
所述步骤S2包括:
S21: 接收抽奖请求, 并完成请求的基本业 务有效性验证;
S22: 根据抽奖请求中请求的活动代码参数、 奖池代码参数、 当前系统时间, 选择确定本
次抽奖的奖池信息;
S23: 当管理端调整了奖池规则后, 奖池规则实时更新保存在内存数据库中, 并确保在
下次抽奖请求到 达时, 可以立即获取到最 新调整后的奖池配置;
S24: 根据抽奖请求参数中活动代码和用户唯一标识, 从内存数据库中查询出该用户在
本活动中已经发生的抽奖次数, 同时比对请求参数中传入的最大抽奖次数, 如果已发生抽
奖次数小于最大抽奖次数, 则可以进入下一抽奖步骤, 否则直接返回步骤S21, 报告该用户
已超过最大抽奖次数;
S25: 基于步骤S2 2确定的奖池参数, 确定 本次抽奖命中哪个奖品;
S26: 将不同活动奖品的库存保存到内存数据库中, 当步骤S25指示抽中指定奖品时, 系
统首先获取针对当前奖品的分布式锁, 从内存数据库中通过活动代码、 奖池代码和奖品代
码提取奖品的当前库存数量S;
S27: 判断当前库存数量S是否大于零, 若S>0, 则更新s=s ‑1并回写内存数据库, 释放
分布式锁; 若S≤0, 则将中奖奖品设置为当前奖池中下一顺位的奖品, 并重复本步骤S26和
步骤S27; 若S≤ 0, 并且本奖品是当前 奖池中最后一个奖品, 则反馈调用端奖品库存不足;
S28: 当管理端调整奖池中某奖品的数量时, 通过分布式锁获得该奖品库存的控制权,
然后按设定调整该 奖品的库存数量, 最后释放分布式锁。
4.根据权利要求1所述的支持高并发且动态可调可配置的实时抽奖方法, 其特征在于,
所述步骤S3包括: 将抽奖 结果写入消息队列中, 同时反馈调用端最终的抽奖 结果。
5.根据权利要求2所述的支持高并发且动态可调可配置的实时抽奖方法, 其特征在于,
所述步骤S12中奖池配置信息包括已经按照配置排序的奖品代码、 中奖概率信息、 累计中奖
概率。
6.根据权利要求3所述的支持高并发且动态可调可配置的实时抽奖方法, 其特征在于,
所述步骤S25包括以下步骤:权 利 要 求 书 1/2 页
2
CN 115330451 A
2S251: 实时生成一个介于 0到1的随机数r;
S252: 按照 奖池中各奖品的排序, 依次提取第i个奖品的累 计中奖概率Ri, 如果随机数r
小于当前累计中奖概 率r<Ri, 则表明抽中第i 顺位的奖品;
S252: 按照中奖概 率设置规则, 最后一个奖品的累计中奖概 率为1。
7.一种支持高并发且动态可调可配置的实时抽奖系统, 其特征在于, 应用于权利要求
1‑6中任意一项所述的支持高并发且动态可调可配置的实时抽奖 方法。
8.根据权利要求7所述的支持高并发且动态可调可配置的实时抽奖系统, 其特征在于,
包括系统初始化模块(1)、 抽奖服 务模块(2)及抽奖 结果输出模块(3);
所述系统初始化模块(1)在系统启动时执行, 用于负责从数据库中读取奖池配置信息,
并以键值对方式保存到内存数据库中;
所述抽奖服务模块(2)用于在抽奖服务模块(2)中的不同控制步骤节点中或从内存数
据库实时读取奖池配置信息, 或在获得有效抽奖结果后实时更新奖品库存信息并回写内存
数据库, 在产生有效抽奖 结果时, 抽奖 结果信息会实时保存到消息队列;
所述抽奖结果输出模块(3)用于处理消息队列中的消息, 按先进先出原则从消息队列
中读取待处 理消息, 并将抽奖 结果写入数据库进行持久化保存。
9.根据权利要求8所述的支持高并发且动态可调可配置的实时抽奖系统, 其特征在于,
所述抽奖服务模块(2)包括奖池配置控制模块(21)、 抽奖请求处理模块(22)、 奖池控制模块
(23)、 抽奖次数控制模块(24)、 中奖概率控制模块(25)、 奖品库存控制模块(26)、 对外API服
务模块(27)、 奖池规则动态调整模块(28)及奖品数量动态调整模块(2 9);
所述奖池配置控制模块(21)用于根据管理端的配置, 生成奖池配置信息; 所述抽奖请
求处理模块(22)用于接收所述对外API服务模块(27)发送的抽奖请求, 并完成请求的基本
业务有效性验证;
所述奖池控制模块(23)用于根据抽奖请求中请求的活动代码参数、 奖池代码参数、 当
前系统时间, 选择确定 本次抽奖的奖池信息;
所述抽奖次数控制模块(24)用于根据抽奖请求参数中活动代码和用户唯一标识, 从内
存数据库中查询出该用户在本活动中已经发生的抽奖次数, 同时比对请求参数中传 入的最
大抽奖次数;
所述中奖概率控制模块(25)用于基于步骤S22确定的奖池参数, 确定本次抽奖命中哪
个奖品;
所述奖品库存控制模块(26)用于在系统初始化 时, 将不同活动奖品的库存保存的内存
数据库中;
所述对外API 服务模块(27)用于通过API方式向外 部应用暴露其核心抽奖功能;
所述奖池规则动态调整模块(28)用于实时更新保存在内存数据库中的奖池规则, 并确
保在下次抽奖请求到 达时, 可以立即获取到最 新调整后的奖池配置;
所述奖品数量动态调整模块(29)用于通过分布式锁获得该奖品库存的控制权, 然后按
设定调整该 奖品的库存数量, 最后释放分布式锁。权 利 要 求 书 2/2 页
3
CN 115330451 A
3
专利 一种支持高并发且动态可调可配置的实时抽奖方法及系统
文档预览
中文文档
12 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-24 00:59:35上传分享