CN111258768B - 一种优惠抽奖活动的并发处理方法和装置 - Google Patents
一种优惠抽奖活动的并发处理方法和装置 Download PDFInfo
- Publication number
- CN111258768B CN111258768B CN201811457761.4A CN201811457761A CN111258768B CN 111258768 B CN111258768 B CN 111258768B CN 201811457761 A CN201811457761 A CN 201811457761A CN 111258768 B CN111258768 B CN 111258768B
- Authority
- CN
- China
- Prior art keywords
- activity
- request
- winning
- lottery
- prize
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种优惠抽奖活动的并发处理方法和装置,其中所述方法包括:接收任一用户终端发送的通过活动框架传输的活动请求;活动框架是基于Spring WebFlux构建的;基于活动请求生成活动反馈;将活动反馈通过活动框架返回至该用户终端。本发明实施例提供的方法和装置,实现了以并行方式执行同步环境下的各种功能,避免了高并发状态下大量线程的产生,减少了阻塞的概率,规避了线程排队等待的情况,从而可以用少量而固定的线程处理应对大量请求的处理,且方便后续升级,极大程度上提高优惠抽奖活动的并发处理能力,优化了用户体验。
Description
技术领域
本发明实施例涉及互联网运营技术领域,尤其涉及一种优惠抽奖活动的并发处理方法和装置。
背景技术
在目前主流的互联网优惠抽奖营销推广活动中,短信精准营销推广每天主动下发1000-2000万精准营销用户短信进行推广,用户在活动推广期内参加活动存在大量并发。
当前常规的移动互联网优惠抽奖活动框架为MVC(Model View Controller)模型,属于同步请求方式框架。用户通过用户终端浏览器发送的用于参加优惠抽奖活动的HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求通过同步方式调用,同步方式下的B/S(Browser/Server,浏览器/服务器)模式包括:提交请求→等待服务器处理→处理完毕返回。在此期间用户终端浏览器无法执行其他操作。在高并发情况下,当线程池达到最大线程数时,所有可用线程都在阻塞状态下,后续再进入的HTTP请求只能排队,响应时长开始上升。如果要改善页面响应情况,需要对服务器扩容来支撑更多并发请求。
因此,当前优惠抽奖活动存在大量并发时,容易造成活动页面阻塞,页面加载出现缓慢刷新白屏等现象,用户体验极差。
发明内容
本发明实施例提供一种优惠抽奖活动的并发处理方法和装置,用以解决现有的优惠抽奖存在大量并发时容易出现页面阻塞、白屏等影响用户体验的情况的问题。
第一方面,本发明实施例提供一种优惠抽奖活动的并发处理方法,包括:
接收任一用户终端发送的通过活动框架传输的活动请求;所述活动框架是基于Spring WebFlux构建的;
基于所述活动请求生成活动反馈;
将所述活动反馈通过所述活动框架返回至所述任一用户终端。
第二方面,本发明实施例提供一种优惠抽奖活动的并发处理装置,包括:
接收模块,用于接收任一用户终端发送的通过活动框架传输的活动请求;所述活动框架是基于Spring WebFlux构建的;
处理模块,用于基于所述活动请求生成活动反馈;
反馈模块,用于将所述活动反馈通过所述活动框架返回至所述任一用户终端。
第三方面,本发明实施例提供一种电子设备,包括处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信,处理器可以调用存储器中的逻辑指令,以执行如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的一种优惠抽奖活动的并发处理方法和装置,通过基于SpringWebFlux构建的活动框架,异步处理活动请求,从而实现以并行方式执行同步环境下的各种功能,避免了高并发状态下大量线程的产生,减少了阻塞的概率,规避了线程排队等待的情况,从而可以用少量而固定的线程处理应对大量请求的处理,且方便后续升级,极大程度上提高优惠抽奖活动的并发处理能力,优化了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的优惠抽奖活动的并发处理方法的流程示意图;
图2为本发明实施例提供的优惠抽奖活动的并发处理结构示意图;
图3为本发明又一实施例提供的优惠抽奖活动的并发处理方法的流程示意图;
图4为本发明实施例提供的优惠抽奖活动的并发处理装置的结构示意图;
图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对当前优惠抽奖活动存在大量并发时,容易造成活动页面阻塞,页面加载出现缓慢刷新白屏等现象,用户体验极差的问题,本发明实施例提供了一种优惠抽奖活动的并发处理方法。图1为本发明实施例提供的优惠抽奖活动的并发处理方法的流程示意图,如图1所示,该方法的执行主体为具备处理优惠抽奖活动功能的处理单元,该方法包括:
110,接收任一用户终端发送的通过活动框架传输的活动请求;活动框架是基于Spring WebFlux构建的。
此处,用户终端为用户用于进行优惠抽奖活动的智能终端,用户终端可以是智能手机、平板电脑或笔记本电脑等。活动请求是用户通过用户终端发送的用于执行优惠抽奖活动的HTTP请求。用户通过用户终端将活动请求发送到活动框架,经由活动框架将活动请求发送到处理单元。此处,活动框架用于接管由各个用户终端发送的活动请求。活动框架是基于Spring WebFlux构建的,Spring WebFlux是一种响应式Web框架,可以用来建立异步的、非阻塞的、事件驱动的服务。基于Spring WebFlux构建的活动框架可以与处理单元设置在同一服务器或不同服务器上,本发明实施例对此不作具体限定。
活动请求由活动框架接管后,由活动框架与处理单元通信,将活动请求传输至处理单元进行处理。此处,由于活动框架应用了Spring WebFlux的非阻塞HTTP技术,相比当前通用的基于MVC模型的活动框架,能够以并行方式执行同步环境下的各种功能,进而极大程度上提高优惠抽奖活动的并发处理能力。
120,基于活动请求生成活动反馈。
此处,活动反馈是基于活动请求给出的反馈信息,用于指示用户终端执行优惠抽奖活动的下一流程。针对活动框架下发的活动请求,生成该活动请求对应的活动反馈。例如,当活动请求为验证抽奖资格,则活动反馈为抽奖资格合格或抽奖资格不合格;又例如,当活动请求为执行抽奖,则活动反馈为已获奖或未获奖。
130,将活动反馈通过活动框架返回至该用户终端。
具体地,在处理单元生成活动反馈后,处理单元将活动反馈传输至活动框架,经由活动框架将活动反馈返回至发送活动请求的用户终端,以使得用户终端能够根据活动反馈执行优惠抽奖活动的下一流程。例如,当活动反馈为抽奖资格合格,则用户终端显示抽奖资格合格,并跳转至抽奖界面,提示用户进行抽奖操作;又例如,当活动反馈为未获奖,则用户终端显示未获奖,提示用户本次抽奖未获奖,或者等待用户指示进行再次抽奖。
本发明实施例提供的方法,通过基于Spring WebFlux构建的活动框架,异步处理活动请求,从而实现以并行方式执行同步环境下的各种功能,避免了高并发状态下大量线程的产生,减少了阻塞的概率,规避了线程排队等待的情况,从而可以用少量而固定的线程处理应对大量请求的处理,且方便后续升级,极大程度上提高优惠抽奖活动的并发处理能力,优化了用户体验。
基于上述实施例,步骤110之后,该方法还包括:若线程池中无可用线程,则将活动请求设置为等待就绪状态。
具体地,在接收到活动请求后,若当前线程池中无可用线程,则将该活动请求设置为等待就绪状态,暂不基于该活动请求生成活动反馈。需要说明的是,处于等待就绪状态下的活动请求不占用资源,等待线程池中存在可用线程时,再将处于等待就绪状态下的活动请求设置为正常状态,基于活动请求生成活动反馈。
基于上述任一实施例,步骤120具体包括:当活动请求为抽奖次数查询请求时,从数据库中提取抽奖次数查询请求对应的用户的已用抽奖次数;若已用抽奖次数小于预设抽奖次数,则生成抽奖许可信息作为活动反馈;否则,生成未获奖信息作为活动反馈。
具体地,在进行抽奖操作之前,需要对用户的抽奖资格进行检验。本发明实施例中,针对每一用户设置限定的抽奖次数,即预设抽奖次数,每一用户参与抽奖的次数不能超过预设抽奖次数。每一用户的抽奖次数存储在于处理单元连接的数据库中,且根据用户参与抽奖的情况进行实时更新。
当活动请求为抽奖次数查询请求时,在接收到活动请求后,处理单元从数据库中提取当前发送活动请求的用户的已用抽奖次数,并将已用抽奖次数与预设抽奖次数进行比较:如果已用抽奖次数等于预设抽奖次数,则用户的抽奖次数已用完,用户不再具备抽奖资格,则生成的活动反馈为未获奖信息,未获奖信息用于指示用户此次抽奖未获奖。如果已用抽奖次数小于预设抽奖次数,则当前用户符合抽奖条件,生成的活动反馈为抽奖许可信息,抽奖许可信息用于指示用户具备抽奖条件,能够参与抽奖活动。
基于上述任一实施例,步骤120具体包括:当活动请求为抽奖请求时,从数据库中提取当前奖品数量;若当前奖品数量大于0且存在获奖概率,则从数据库中提取获奖概率,并基于获奖概率计算获奖情况;若当前奖品数量大于0且未设置获奖概率,则将获奖情况设置为已获奖;若获奖情况为已获奖,则生成获奖信息作为活动反馈;否则,生成未获奖信息作为活动反馈。
具体地,抽奖请求用于指示处理单元执行抽奖操作,并返回抽奖结果。本发明实施例中,针对优惠抽奖活动,预设有奖品总量。每次获奖后相应的当前奖品数量会更新。当前奖品数量存储在于处理单元连接的数据库中。
处理单元接收到抽奖请求后,从数据库中提取当前奖品数量,基于当前奖品数量判断是否有奖品可用于抽奖:如果当前奖品数量大于0,即当前时刻存在可用于抽奖的奖品;如果当前奖品数量为0,则已无剩余奖品可用于抽奖,不具体获奖条件,生成未获奖信息作为活动反馈,此处未获奖信息用于指示用户此次抽奖未获奖。
此外,针对优惠抽奖活动,可能预先设定有获奖概率。此处获奖概率用于指示任一用户参与抽奖的获奖概率。在当前奖品数量大于0的情况下,判断数据库中是否存储有预先设定的获奖概率。如果存在获奖概率,则处理单元从数据库中提取获奖概率,并根据获奖概率计算获奖情况,此处获奖情况为已获奖或未获奖。如果不存在获奖概率,则默认参与抽奖且存在可用于抽奖的奖品即可获奖,将获奖情况直接设置为已获奖。
随后,根据获奖情况生成对应的活动反馈。如果获奖情况为已获奖,则处理单元生成获奖信息作为活动反馈,此处,获奖信息用于表征用户获奖,获奖信息还可以包含获奖奖品。如果获奖情况为未获奖,则处理单元生成未获奖信息作为活动反馈。
基于上述任一实施例,步骤120具体包括:当活动请求为兑奖请求时,生成兑奖信息作为活动反馈。
在抽奖完成后,如果用户获奖,则用户终端通过活动框架将兑奖请求传输至处理单元,此处,兑奖请求用于指示处理单元下发用户获奖的具体奖品。处理单元接收到兑奖请求后,生成兑奖信息作为活动反馈,此处,兑奖信息用于表征当前获奖的奖品已下发。此外,处理单元还可以基于兑奖请求下发奖品,例如奖品为流量或者电子券等虚拟商品时,处理单元可以基于兑奖信息直接将奖品下发到用户账户中,并通过兑奖信息告知用户奖品已下发。
基于上述任一实施例,数据库设置有Redis分布式锁。
Redis分布式锁通过搭建Redis服务器来存储锁信息,从而实现用分布式锁控制多个线程对资源的访问,以避免多个线程同时调用数据库中的已用抽奖次数、当前奖品数量等信息,未及时更新导致的奖品多发、商品负库存、同一用户超次数抽奖等问题。
对应地,当活动请求为抽奖请求时,对应更新数据库中活动请求对应的用户的已用抽奖次数,避免用户的实际抽奖次数超过预设抽奖次数。
在抽奖过程中,若获奖情况为已获奖,则对应更新数据库中的当前奖品数量,对应减少当前奖品数量中已获奖的奖品类目下的奖品数量,以避免当前奖品数量的统计出现延迟,导致奖品多发或者商品负库存的情况。
基于上述任一实施例,图2为本发明实施例提供的优惠抽奖活动的并发处理结构示意图,图3为本发明又一实施例提供的优惠抽奖活动的并发处理方法的流程示意图,如图2、图3所示。优惠抽奖活动的并发处理方法包括如下步骤:
用户通过用户终端登录后,在参与抽奖之前,发出为抽奖次数查询请求的活动请求。抽奖次数查询请求通过基于Spring WebFlux构建的活动框架传输至处理单元,处理单元接收到抽奖次数查询请求后,从数据库中提取该用户的已用抽奖次数,如果已用抽奖次数等于预设抽奖次数,则用户的抽奖次数已用完,用户不再具备抽奖资格,则生成的活动反馈为未获奖信息。如果已用抽奖次数小于预设抽奖次数,则当前用户符合抽奖条件,生成的活动反馈为抽奖许可信息。随即处理单元将活动反馈通过活动框架传输至用户终端。
如果用户终端接收到的活动反馈为抽奖许可信息,则用户终端进入优惠抽奖获取页面,用户通过用户终端点击抽奖,用户终端发出为抽奖请求的活动请求。抽奖请求通过活动框架传输至处理单元,处理单元接收到抽奖请求后,从数据库中提取当前奖品数量,基于当前奖品数量判断是否有奖品可用于抽奖:如果当前奖品数量大于0,即当前时刻存在可用于抽奖的奖品;如果当前奖品数量为0,则已无剩余奖品可用于抽奖,不具体获奖条件,生成未获奖信息作为活动反馈。
若当前奖品数量大于0,则处理单元判断数据库中是否存储有预先设定的获奖概率。如果存在获奖概率,则处理单元从数据库中提取获奖概率,并根据获奖概率计算获奖情况,此处获奖情况为已获奖或未获奖。如果不存在获奖概率,则默认参与抽奖且存在可用于抽奖的奖品即可获奖,将获奖情况直接设置为已获奖。随后,根据获奖情况生成对应的活动反馈。如果获奖情况为已获奖,则处理单元生成获奖信息作为活动反馈,此处,获奖信息用于表征用户获奖,获奖信息还可以包含获奖奖品。如果获奖情况为未获奖,则处理单元生成未获奖信息作为活动反馈。接着,处理单元将活动反馈通过活动框架传输至用户终端。
如果用户终端接收到的活动反馈为获奖信息,则用户终端进入用户获奖页面,提示用户获奖。用户通过用户终端点击兑奖,用户终端发出为兑奖请求的活动请求。兑奖请求通过活动框架传输至处理单元,处理单元接收到兑奖请求后,基于兑奖请求下发奖品,并生成兑奖信息作为活动反馈告知用户奖品已下发。活动反馈通过活动框架传输至用户终端。
如果用户终端接收到的活动反馈为兑奖信息,则用户终端进入兑奖成功页面,提示用户奖品已成功兑换。
如果用户终端接收到的活动反馈为未获奖信息,则用户终端进入未获奖页面,提示用户未获奖。
本发明实施例提供的方法,通过基于Spring WebFlux构建的活动框架,异步处理活动请求,从而实现以并行方式执行同步环境下的各种功能,避免了高并发状态下大量线程的产生,减少了阻塞的概率,规避了线程排队等待的情况,从而可以用少量而固定的线程处理应对大量请求的处理,且方便后续升级,极大程度上提高优惠抽奖活动的并发处理能力,优化了用户体验。
基于上述任一实施例,基于Spring WebFlux构建的活动框架,在底层处理支持异步模式,支持Netty,Undertow等异步容器和Servlet 3.1标准的容器。
其中,Netty是一套异步的、事件驱动的网络应用程序框架和工具,能够开发高性能、高可靠性的网络服务器和客户端程序,因此与同样是异步的、事件驱动的响应式编程范式吻合。在Java 7推出异步I/O库,以及Servlet3.1增加了对异步I/O的支持之后,Tomcat等Servlet容器也随后开始支持异步I/O,然后Spring WebMVC也增加了对Reactor库的支持在Web容器的选择上,Spring WebFlux既支持像Tomcat、Jetty等传统容器,又支持像Netty、Undertow等异步容器。针对上述容器,基于Spring WebFlux构建的活动框架都会将其输入输出流适配成Flux<DataBuffer>格式,以便进行统一处理。
此外,在本发明实施例提供的方法中,同样地基于Spring WebFlux,还提供了一种响应式的Http客户端API WebClient。上述客户端可以用函数式的方式异步非阻塞地发起Http请求并处理响应,其底层也是由Netty提供的异步支持。
基于上述任一实施例,图4为本发明实施例提供的优惠抽奖活动的并发处理装置的结构示意图,如图4所示,优惠抽奖活动的并发处理装置包括接收模块410、处理模块420和反馈模块430;
其中,接收模块410用于接收任一用户终端发送的通过活动框架传输的活动请求;所述活动框架是基于Spring WebFlux构建的;
处理模块420用于基于所述活动请求生成活动反馈;
反馈模块430用于将所述活动反馈通过所述活动框架返回至所述任一用户终端。
本发明实施例提供的装置,通过基于Spring WebFlux构建的活动框架,异步处理活动请求,从而实现以并行方式执行同步环境下的各种功能,避免了高并发状态下大量线程的产生,减少了阻塞的概率,规避了线程排队等待的情况,从而可以用少量而固定的线程处理应对大量请求的处理,且方便后续升级,极大程度上提高优惠抽奖活动的并发处理能力,优化了用户体验。
基于上述任一实施例,该装置还包括缓存单元;
所述缓存单元用于若线程池中无可用线程,则将所述活动请求设置为等待就绪状态。
基于上述任一实施例,处理模块420具体用于:
当所述活动请求为抽奖次数查询请求时,从数据库中提取所述抽奖次数查询请求对应的用户的已用抽奖次数;
若所述已用抽奖次数小于预设抽奖次数,则生成抽奖许可信息作为所述活动反馈;否则,生成未获奖信息作为所述活动反馈。
基于上述任一实施例,处理模块420具体用于:当所述活动请求为抽奖请求时,从数据库中提取当前奖品数量;
若所述当前奖品数量大于0且存在获奖概率,则从所述数据库中提取所述获奖概率,并基于所述获奖概率计算获奖情况;
若所述当前奖品数量大于0且未设置获奖概率,则将所述获奖情况设置为已获奖;
若所述获奖情况为已获奖,则生成获奖信息作为所述活动反馈;
否则,生成未获奖信息作为所述活动反馈。
基于上述任一实施例,处理模块420具体用于:当所述活动请求为兑奖请求时,生成兑奖信息作为所述活动反馈。
基于上述任一实施例,所述数据库设置有Redis分布式锁;处理模块420还用于:若所述获奖情况为已获奖,则对应更新所述数据库中的所述当前奖品数量。
图5为本发明实施例提供的电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)501、通信接口(Communications Interface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501可以调用存储在存储器503上并可在处理器501上运行的计算机程序,以执行上述各实施例提供的优惠抽奖活动的并发处理方法,例如包括:接收任一用户终端发送的通过活动框架传输的活动请求;所述活动框架是基于Spring WebFlux构建的;基于所述活动请求生成活动反馈;将所述活动反馈通过所述活动框架返回至所述任一用户终端。
此外,上述的存储器503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的优惠抽奖活动的并发处理方法,例如包括:接收任一用户终端发送的通过活动框架传输的活动请求;所述活动框架是基于Spring WebFlux构建的;基于所述活动请求生成活动反馈;将所述活动反馈通过所述活动框架返回至所述任一用户终端。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种优惠抽奖活动的并发处理方法,其特征在于,包括:
接收任一用户终端发送的通过活动框架传输的活动请求;所述活动框架是基于SpringWebFlux构建的;
基于所述活动请求生成活动反馈;
将所述活动反馈通过所述活动框架返回至所述任一用户终端;
所述基于所述活动请求生成活动反馈,具体包括:
当所述活动请求为抽奖次数查询请求时,从数据库中提取所述抽奖次数查询请求对应的用户的已用抽奖次数;
若所述已用抽奖次数小于预设抽奖次数,则生成抽奖许可信息作为所述活动反馈;否则,生成未获奖信息作为所述活动反馈;
所述基于活动请求生成活动反馈,具体包括:
当所述活动请求为抽奖请求时,从数据库中提取当前奖品数量;
若所述当前奖品数量大于0且存在获奖概率,则从所述数据库中提取所述获奖概率,并基于所述获奖概率计算获奖情况;
若所述当前奖品数量大于0且未设置获奖概率,则将所述获奖情况设置为已获奖;
若所述获奖情况为已获奖,则生成获奖信息作为所述活动反馈;
否则,生成未获奖信息作为所述活动反馈;
所述基于活动请求生成活动反馈,具体包括:
当所述活动请求为兑奖请求时,生成兑奖信息作为所述活动反馈;
所述数据库设置有Redis分布式锁;
所述若所述获奖情况为已获奖,则生成获奖信息作为所述活动反馈,还包括:
若所述获奖情况为已获奖,则对应更新所述数据库中的所述当前奖品数量。
2.根据权利要求1所述的方法,其特征在于,所述接收任一用户终端发送的通过活动框架传输的活动请求,之后还包括:
若线程池中无可用线程,则将所述活动请求设置为等待就绪状态。
3.一种优惠抽奖活动的并发处理装置,其特征在于,包括:
接收模块,用于接收任一用户终端发送的通过活动框架传输的活动请求;所述活动框架是基于Spring WebFlux构建的;
处理模块,用于基于所述活动请求生成活动反馈;
反馈模块,用于将所述活动反馈通过所述活动框架返回至所述任一用户终端;
所述基于所述活动请求生成活动反馈,具体包括:
当所述活动请求为抽奖次数查询请求时,从数据库中提取所述抽奖次数查询请求对应的用户的已用抽奖次数;
若所述已用抽奖次数小于预设抽奖次数,则生成抽奖许可信息作为所述活动反馈;否则,生成未获奖信息作为所述活动反馈;
所述基于活动请求生成活动反馈,具体包括:
当所述活动请求为抽奖请求时,从数据库中提取当前奖品数量;
若所述当前奖品数量大于0且存在获奖概率,则从所述数据库中提取所述获奖概率,并基于所述获奖概率计算获奖情况;
若所述当前奖品数量大于0且未设置获奖概率,则将所述获奖情况设置为已获奖;
若所述获奖情况为已获奖,则生成获奖信息作为所述活动反馈;
否则,生成未获奖信息作为所述活动反馈;
所述基于活动请求生成活动反馈,具体包括:
当所述活动请求为兑奖请求时,生成兑奖信息作为所述活动反馈;
所述数据库设置有Redis分布式锁;
所述若所述获奖情况为已获奖,则生成获奖信息作为所述活动反馈,还包括:
若所述获奖情况为已获奖,则对应更新所述数据库中的所述当前奖品数量。
4.根据权利要求3所述的装置,其特征在于,还包括缓存单元;
所述缓存单元用于若线程池中无可用线程,则将所述活动请求设置为等待就绪状态。
5.一种电子设备,其特征在于,包括处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信,处理器可以调用存储器中的逻辑指令,以执行如权利要求1至2任一所述的方法。
6.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至2任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811457761.4A CN111258768B (zh) | 2018-11-30 | 2018-11-30 | 一种优惠抽奖活动的并发处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811457761.4A CN111258768B (zh) | 2018-11-30 | 2018-11-30 | 一种优惠抽奖活动的并发处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258768A CN111258768A (zh) | 2020-06-09 |
CN111258768B true CN111258768B (zh) | 2023-09-19 |
Family
ID=70953619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811457761.4A Active CN111258768B (zh) | 2018-11-30 | 2018-11-30 | 一种优惠抽奖活动的并发处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258768B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113034207A (zh) * | 2021-04-20 | 2021-06-25 | 青岛冠成软件有限公司 | 一种抽奖信息处理方法、装置、服务器和可读存储介质 |
CN114996031B (zh) * | 2022-08-03 | 2022-12-27 | 飞狐信息技术(天津)有限公司 | 抽奖方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178818A (zh) * | 2006-08-11 | 2008-05-14 | 大连零点娱乐互动有限公司 | 用于实时处理数据的设备、方法和*** |
CN107220853A (zh) * | 2017-05-27 | 2017-09-29 | 北京奇虎科技有限公司 | 抽奖数据处理方法、装置、服务器及计算机存储介质 |
WO2018032399A1 (en) * | 2016-08-17 | 2018-02-22 | Zte Corporation | Server and method having high concurrency capability |
CN108022126A (zh) * | 2017-11-29 | 2018-05-11 | 广东欧珀移动通信有限公司 | 抽奖资格的确定方法、装置、服务器及存储介质 |
CN108881368A (zh) * | 2018-04-22 | 2018-11-23 | 平安科技(深圳)有限公司 | 高并发业务请求处理方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2759835C (en) * | 2011-01-28 | 2016-07-19 | Pollard Banknote Limited Partnership | Game ticket apparatus including network communication of information on the game to other players |
-
2018
- 2018-11-30 CN CN201811457761.4A patent/CN111258768B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178818A (zh) * | 2006-08-11 | 2008-05-14 | 大连零点娱乐互动有限公司 | 用于实时处理数据的设备、方法和*** |
WO2018032399A1 (en) * | 2016-08-17 | 2018-02-22 | Zte Corporation | Server and method having high concurrency capability |
CN107220853A (zh) * | 2017-05-27 | 2017-09-29 | 北京奇虎科技有限公司 | 抽奖数据处理方法、装置、服务器及计算机存储介质 |
CN108022126A (zh) * | 2017-11-29 | 2018-05-11 | 广东欧珀移动通信有限公司 | 抽奖资格的确定方法、装置、服务器及存储介质 |
CN108881368A (zh) * | 2018-04-22 | 2018-11-23 | 平安科技(深圳)有限公司 | 高并发业务请求处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111258768A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8700735B1 (en) | Multi-level cache with synch | |
US20090119302A1 (en) | Asynchronous client to server updates | |
CN101452555A (zh) | 查询个人信用信息的方法、***及个人信用查询*** | |
CN111258768B (zh) | 一种优惠抽奖活动的并发处理方法和装置 | |
CN110737857A (zh) | 一种后端分页加速方法、***、终端及存储介质 | |
CN103685154A (zh) | 基于互联网络的概率产品数据处理方法及服务器 | |
CN112559208A (zh) | 一种应用于政务云平台构建微服务mq的方法 | |
CN110362986A (zh) | 一种微信小程序自动登录方法及存储设备 | |
WO2024011899A1 (zh) | 微件的加载方法、装置、设备以及存储介质 | |
CN107317788A (zh) | 实时数据推送方法和装置 | |
CN113055348B (zh) | 一种跨平台数据请求方法、装置及电子设备 | |
CN108874836B (zh) | 转移电子券的方法和装置 | |
CN106970872A (zh) | 信息埋点方法及装置 | |
EP2700023B1 (en) | Reducing latency for served applications by anticipatory preprocessing | |
CN115270743A (zh) | 一种表单数据的处理方法及装置 | |
CN112182400B (zh) | 消息处理方法、消息处理装置、电子设备及存储介质 | |
CN114356970A (zh) | 一种存储***资源缓存方法及装置 | |
CN114385351A (zh) | 云管理平台负载均衡性能优化方法、装置、设备、介质 | |
CN114237929A (zh) | 一种Web服务端导出大数据的方法 | |
CN113190624A (zh) | 基于分布式跨容器的异步转同步调用方法及装置 | |
CN113486032A (zh) | 日期切换方法、装置、电子设备以及计算机可读介质 | |
CN108234481B (zh) | 一种控制多机分布式访问外部***的方法及分布式*** | |
JP7143866B2 (ja) | キャッシュ管理プログラム、サーバ、キャッシュ管理方法、および情報処理装置 | |
CN116643870B (zh) | 一种长时任务分发处理方法、***、装置及可读存储介质 | |
CN112561567A (zh) | 一种电子红包领取请求的异步处理方法、***及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |