System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及工程项目软件开发,特别是涉及一种高并发业务场景的事件执行方法、系统、设备及介质。
技术介绍
1、在软件行业发展中,各社交产品日益火爆,为了获取更多用户及流量,各大平台推出新玩法,例如抢红包、秒杀抢购、促销活动。红包功能是一种宣传产品的方式,但其同质化严重,若需要采用红包雨方式进行引流,面向广大c端用户,系统设计需要承载三高(高可用、高并发和高性能)要求。
2、目前,解决高并发问题的方法主要包括使用自旋互斥锁、cas乐观锁、数据库层面的悲观锁和乐观锁,以及依赖数据库执行引擎的顺序执行机制,但上述方案均存在一定缺陷,具体如下:
3、(1)利用synchronized关键字分布式环境下无效, synchronized是 java 中的关键字,用于在单个 jvm 中保护共享资源;在分布式环境下,多个服务实例之间无法通过synchronized来同步,因为各个实例之间无法直接共享 jvm 中的锁;synchronized会导致性能问题,尤其在高并发的情况下,争夺锁可能会成为瓶颈。
4、(2)悲观锁:在数据处理过程中,将数据处于锁定状态,直到处理完毕;这种方式可以避免并发访问造成的冲突,但可能会降低系统的并发处理能力。
5、(3)直接访问数据库方案,利用数据库锁表机制,而高并发访问的访问容易导致导致内存溢出,导致集群服务直接宕机,适用并发量不高情况。
技术实现思路
1、本专利技术的目的在于,提供一种高并发业务场景的
2、为解决上述技术问题,本专利技术的具体技术方案如下:
3、一方面,本专利技术提供一种高并发业务场景的事件执行方法,包括以下步骤:
4、初始化步骤:
5、初始化库存数据,将所有的红包信息缓存至redis中;
6、加锁步骤:
7、将redis作为分布式调度中心,对请求进行自动上锁;根据业务时长以及业务完成情况进行自适应解锁;
8、校验步骤:
9、对红包金额数量及剩余金额进行校验,并将得到的红包信息缓存至redis中;
10、金额分类步骤:
11、根据事件请求类型,调用二倍均值法计算红包事件的分配金额;
12、解锁步骤:
13、响应于操作执行完毕,将数据表数据状态放开,释放锁。
14、在其中一种实施方式中,所述所有的红包信息,包括:未分配红包信息和已分配红包信息。
15、在其中一种实施方式中,所述根据业务时长以及业务完成情况进行自适应解锁,包括:
16、响应于业务时间长,锁自动续期;
17、响应于加锁的业务运行完成,不进行当前锁的续期;
18、响应于未手动解锁,锁在三十秒后自动删除。
19、在其中一种实施方式中,所述根据业务时长以及业务完成情况进行自适应解锁,还包括:
20、响应于多请求,对第一个请求自动上锁三十秒,对除所述第一个请求外的请求进入阻塞等待;
21、响应于加锁的业务运行完成,调用lock.unlock()解锁;
22、响应于业务过程出现异常或者宕机,锁在三十秒后自动删除。
23、在其中一种实施方式中,所述根据事件请求类型,调用二倍均值法计算红包事件的分配金额,包括:
24、响应于所述事件请求类型为拼手气红包请求,根据当前剩余金额生成随机数;从redis获取红包信息,校验红包剩余数量;
25、若红包剩余数量等于零,则把剩余金额全部赋给最后一个红包;
26、若红包剩余数量非零,则根据所述二倍均值法计算当前红包分配金额。
27、在其中一种实施方式中,所述二倍均值法的计算公式为:
28、红包事件每次抢到的金额=随机区间[p,m/n×2-p];
29、其中,m为剩余红包金额,n为剩余人数,p为每人获取到的最小额度。
30、在其中一种实施方式中,所述高并发业务场景的事件执行方法,还包括:
31、响应于加锁、校验剩余金额或执行获取红包金额过程中出现异常,进行相应的异常处理和数据回滚操作。
32、另一方面,本专利技术还提供一种高并发业务场景的事件执行系统,包括:
33、初始化模块,用于:初始化库存数据,将所有的红包信息缓存至redis中;
34、加锁模块,用于:将redis作为分布式调度中心,对请求进行自动上锁;根据业务时长以及业务完成情况进行自适应解锁;
35、校验模块,用于:对红包金额数量及剩余金额进行校验,并将得到的红包信息缓存至redis中;
36、金额分类模块,用于:根据事件请求类型,调用二倍均值法计算红包事件的分配金额;
37、解锁模块,用于:响应于操作执行完毕,将数据表数据状态放开,释放锁。
38、另一方面,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述高并发业务场景的事件执行方法的步骤。
39、另一方面,本专利技术还提供一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;其中:
40、所述存储器,用于存放计算机程序;
41、所述处理器,用于通过运行所述存储器上所存放的程序来执行所述高并发业务场景的事件执行方法的步骤。
42、本专利技术技术方案的有益效果是:
43、1.本专利技术所述的高并发业务场景的事件执行方法,可以实现直观快速实现随机分配红包金额的功能,实现了随机抢红包的方案,降低开发成本,并且适用于其他高并发下海量数据处理的专业应用,弥补了现有技术的缺陷,具有较高的应用价值。
44、2.本专利技术所述的高并发业务场景的事件执行系统,可以通过系统模块的相互配合,进而实现本专利技术所述的高并发业务场景的事件执行方法。
45、3.本专利技术所述的计算机可读存储介质,可以实现引导系统模块进行配合,进而实现本专利技术所述的高并发业务场景的事件执行方法,且本专利技术所述的计算机可读存储介质还有效提高所述高并发业务场景的事件执行方法的可操作性。
46、4.本专利技术所述的计算机设备,可以实现存储并执行所述计算机可读存储介质,进而实现本专利技术所述的高并发业务场景的事件执行方法。
本文档来自技高网...【技术保护点】
1.一种高并发业务场景的事件执行方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的高并发业务场景的事件执行方法,其特征在于:
3.根据权利要求1所述的高并发业务场景的事件执行方法,其特征在于:
4.根据权利要求3所述的高并发业务场景的事件执行方法,其特征在于:
5.根据权利要求4所述的高并发业务场景的事件执行方法,其特征在于:
6.根据权利要求5所述的高并发业务场景的事件执行方法,其特征在于:
7.根据权利要求1所述的高并发业务场景的事件执行方法,其特征在于:
8.一种高并发业务场景的事件执行系统,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~7中任一项所述高并发业务场景的事件执行方法的步骤。
10.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;其中:
【技术特征摘要】
1.一种高并发业务场景的事件执行方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的高并发业务场景的事件执行方法,其特征在于:
3.根据权利要求1所述的高并发业务场景的事件执行方法,其特征在于:
4.根据权利要求3所述的高并发业务场景的事件执行方法,其特征在于:
5.根据权利要求4所述的高并发业务场景的事件执行方法,其特征在于:
6.根据权利要求5所述的高并发业务场景的事件执行方法,其特征在于:
7.根据权...
【专利技术属性】
技术研发人员:霍春松,李浩,王腾,
申请(专利权)人:浪潮金融信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。