CN113763101A - 一种业务请求处理方法和装置 - Google Patents
一种业务请求处理方法和装置 Download PDFInfo
- Publication number
- CN113763101A CN113763101A CN202110019668.0A CN202110019668A CN113763101A CN 113763101 A CN113763101 A CN 113763101A CN 202110019668 A CN202110019668 A CN 202110019668A CN 113763101 A CN113763101 A CN 113763101A
- Authority
- CN
- China
- Prior art keywords
- team
- user
- request
- processed
- data
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 230000000694 effects Effects 0.000 claims abstract description 126
- 238000000034 method Methods 0.000 claims abstract description 64
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000000875 corresponding effect Effects 0.000 claims description 79
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 11
- 230000015572 biosynthetic process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 241000208340 Araliaceae Species 0.000 description 4
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 4
- 235000003140 Panax quinquefolius Nutrition 0.000 description 4
- 235000008434 ginseng Nutrition 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- 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/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
Abstract
本发明公开了一种业务请求处理方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收用户资源共享的请求,根据所述请求的预设属性值生成待处理参团队伍;将所述队伍中用户的请求存入循环缓冲区;当满足预设条件时,获取循环缓冲区中的至少一个待处理参团队伍,并基于待处理参团队伍创建活动任务,以使待处理参团队伍通过执行所述活动任务实现资源共享。该实施方式能够在资源共享业务的组队阶段根据用户请求快速确定并生成待处理参团队伍,并对所有用户的请求都及时做出响应,提升了用户体验;以及在分配活动任务阶段使用了循环缓冲区,进而可以以一种无锁的线程安全方式批量根据用户请求为用户分配活动任务,提高了整体处理效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种业务请求处理方法和装置。
背景技术
互联网技术的发展影响着人们的消费方式,资源共享的消费方式(如拼团)是一种广泛应用的消费方式;在资源共享的消费方式中,设置有成团人数限制和一些成团要求(如队伍中人数必须达到队伍上限个数,该队伍中的用户才能进行购买)。资源共享的消费方式通常可以分为两个阶段:组队阶段,为队伍中的用户分配活动任务阶段;现有技术中,在组队阶段常常先接受所有用户的请求但不马上处理,会考虑用户等级进而确定其组队是否成功;在分配活动任务阶段通常使用一般的等待队列,使用锁机制逐个处理用户请求。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
在组队阶段,当接受请求不马上处理,大量的用户请求会持续消耗系统资源,且根据用户等级确定其组队是否成功,则较晚才能生成待参团队伍,容易使一些发出请求较早但等级较低的用户体验较差;并且无法及时反馈给用户是否组队成功的结果,也容易使得用户体验较差;
在分配活动任务阶段,使用一般的等待队列,使用锁机制逐个处理用户请求容易造成处理效率较低。
发明内容
有鉴于此,本发明实施例提供一种业务请求处理方法和装置,能够在资源共享业务的组队阶段根据用户请求快速确定并生成待处理参团队伍,并对所有用户的请求都及时做出响应,提升了用户体验;以及在分配活动任务阶段使用了循环缓冲区,进而可以以一种无锁的线程安全方式批量根据用户请求为用户分配活动任务,提高了整体处理效率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种业务请求处理方法,包括:
接收用户资源共享的请求,根据所述请求的预设属性值,生成待处理参团队伍;
将所述队伍中用户的请求存入循环缓冲区;
当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,以使所述待处理参团队伍通过执行所述活动任务实现资源共享。
可选地,在所述接收用户资源共享的请求之前,还包括:
获取资源共享业务信息;
将所述资源共享业务信息转化为业务参数数据;
基于所述业务参数数据为所述资源共享业务创建业务入口。
可选地,所述业务参数数据至少包括:资源共享业务标识、开始时刻,结束时刻、资源物品标识、资源物品的总库存量、队伍内人数上限值、队伍数量上限值;
在根据所述请求的预设属性值,生成待处理参团队伍之前,还包括:当检测到当前时间达到所述开始时刻,开放所述业务入口,以接收用户资源共享的请求;以及,
当检测到当前时间达到所述结束时刻或检测到生成的待处理参团队伍数量值达到所述队伍数量上限值,关闭所述业务入口,以停止接收用户资源共享的请求。
可选地,所述预设属性值包括:用户标识、所述用户请求的目标队伍的队伍标识、所述目标队伍中目标位信息;所述目标位包括:队长位、队员位;
所述根据所述请求的预设属性值,生成待处理参团队伍,包括:
根据所述请求在一级缓存生成所述队伍标识与所述用户标识的对应关系;
判断二级缓存中是否存在所述目标队伍的队伍数据;若否,基于所述对应关系在所述二级缓存中创建所述目标队伍的队伍数据;若是,将所述对应关系更新至所述目标队伍的队伍数据;所述队伍数据包括:队伍标识与队伍中用户的用户标识的对应关系;
当所述目标队伍数据中对应关系的个数达到所述队伍内人数上限值,以所述目标队伍作为待处理参团队伍。
可选地,本发明提供的业务请求处理方法还包括:在达到所述结束时刻之前,还包括:
当所述二级缓存中存在对应关系的个数未达到所述队伍内人数上限值的第二队伍数据,对所述第二队伍数据中的用户标识与队伍标识的对应关系以使调整后至多存在一个对应关系个数未达到所述队伍内人数上限值的队伍。
可选地,在在所述二级缓存中创建或更新所述目标队伍的队伍数据之后,还包括:根据所述队伍数据是否创建成功或者是否更新成功的结果,向对应的用户返回进队成功或进队失败的通知消息;
在生成所述待处理参团队伍之后,还包括:向所述待处理参团队伍中的用户返回成团成功的通知消息;以及,
在检测到当前时间达到所述结束时刻之后,向对应关系个数未达到所述队伍内人数上限值的队伍中的用户,返回成团失败的通知消息。
可选地,在将所述队伍中用户的请求存入循环缓冲区之前,还包括:
读取所述资源物品的总库存量n,确定出一个大于n的2的整数次幂值m;为资源共享业务创建数据槽个数为m的循环缓冲区;
所述将所述队伍中用户的请求存入循环缓冲区,包括:
将所述队伍数据中用户的请求存入所述循环缓冲区的数据槽中。
可选地,当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,包括:
判断是否已存在创建活动任务时刻;若不存在,以所述开始时刻作为对比时刻;若存在,以最近一次创建活动任务时刻作为对比时刻;
判断在所述对比时刻之后的预设时长的时间段内,所述循环缓冲区中存入请求的个数是否达到预设值;其中,所述预设值是所述队伍内人数上限值的整数倍;
若是,在到达所述预设值的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务;
若否,在所述对比时刻之后预设时长的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务。
可选地,在基于所述待处理参团队伍创建活动任务后,还包括:
将所述待处理参团队伍中的目标用户的请求从所述循环缓冲区中取出;
当所述目标用户执行所述活动任务成功,向该目标用户返回执行成功的通知消息,并生成对应的活动任务记录;
当所述目标用户执行所述活动任务失败,向该用户返回执行失败的通知消息。
根据本发明实施例的再一个方面,提供了一种业务请求处理装置,包括:
生成队伍模块,用于接收用户资源共享的请求,根据所述请求的预设属性值,生成待处理参团队伍;
存入请求模块,用于将所述队伍中用户的请求存入循环缓冲区;
创建活动任务模块,用于当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,以使所述待处理参团队伍通过执行所述活动任务实现资源共享。
可选地,所述生成队伍模块在所述接收用户资源共享的请求之前,还包括:
获取资源共享业务信息;
将所述资源共享业务信息转化为业务参数数据;
基于所述业务参数数据为所述资源共享业务创建业务入口。
可选地,所述业务参数数据至少包括:资源共享业务标识、开始时刻,结束时刻、资源物品标识、资源物品的总库存量、队伍内人数上限值、队伍数量上限值;
所述生成队伍模块在根据所述请求的预设属性值,生成待处理参团队伍之前,还包括:当检测到当前时间达到所述开始时刻,开放所述业务入口,以接收用户资源共享的请求;以及,
当检测到当前时间达到所述结束时刻或检测到生成的待处理参团队伍数量值达到所述队伍数量上限值,关闭所述业务入口,以停止接收用户资源共享的请求。
可选地,所述预设属性值包括:用户标识、所述用户请求的目标队伍的队伍标识、所述目标队伍中目标位信息;所述目标位包括:队长位、队员位;
所述生成队伍模块根据所述请求的预设属性值,生成待处理参团队伍,包括:
根据所述请求在一级缓存生成所述队伍标识与所述用户标识的对应关系;
判断二级缓存中是否存在所述目标队伍的队伍数据;若否,基于所述对应关系在所述二级缓存中创建所述目标队伍的队伍数据;若是,将所述对应关系更新至所述目标队伍的队伍数据;所述队伍数据包括:队伍标识与队伍中用户的用户标识的对应关系;
当所述目标队伍数据中对应关系的个数达到所述队伍内人数上限值,以所述目标队伍作为待处理参团队伍。
可选地,所述生成队伍模块还用于:在达到所述结束时刻之前,还包括:
当所述二级缓存中存在对应关系的个数未达到所述队伍内人数上限值的第二队伍数据,对所述第二队伍数据中的用户标识与队伍标识的对应关系进行调整,以使调整后至多存在一个对应关系个数未达到所述队伍内人数上限值的队伍。
可选地,在在所述二级缓存中创建或更新所述目标队伍的队伍数据之后,所述生成队伍模块还用于:根据所述队伍数据是否创建成功或者是否更新成功的结果,向对应的用户返回进队成功或进队失败的通知消息;
在生成所述待处理参团队伍之后,还包括:向所述待处理参团队伍中的用户返回成团成功的通知消息;以及,
在检测到当前时间达到所述结束时刻之后,向对应关系个数未达到所述队伍内人数上限值的队伍中的用户,返回成团失败的通知消息。
可选地,所述存入请求模块在将所述队伍中用户的请求存入循环缓冲区之前,还包括:
读取所述资源物品的总库存量n,确定出一个大于n的2的整数次幂值m;为资源共享业务创建数据槽个数为m的循环缓冲区;
所述将所述队伍中用户的请求存入循环缓冲区,包括:
将所述队伍数据中用户的请求存入所述循环缓冲区的数据槽中。
可选地,当满足预设条件时,所述创建活动任务模块获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,包括:
判断是否已存在创建活动任务时刻;若不存在,以所述开始时刻作为对比时刻;若存在,以最近一次创建活动任务时刻作为对比时刻;
判断在所述对比时刻之后的预设时长的时间段内,所述循环缓冲区中存入请求的个数是否达到预设值;其中,所述预设值是所述队伍内人数上限值的整数倍;
若是,在到达所述预设值的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务;
若否,在所述对比时刻之后预设时长的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务。
可选地,在基于所述待处理参团队伍创建活动任务后,所述创建活动任务模块还用于:
将所述待处理参团队伍中的目标用户的请求从所述循环缓冲区中取出;
当所述目标用户执行所述活动任务成功,向该目标用户返回执行成功的通知消息,并生成对应的活动任务记录;
当所述目标用户执行所述活动任务失败,向该用户返回执行失败的通知消息。
根据本发明实施例的另一个方面,提供了一种业务请求处理电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的业务请求处理方法。
根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的业务请求处理方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用在组队阶段根据用户请求就确定并生成待处理参团队伍、以及都及时做出响应,在分配活动任务阶段使用循环缓冲区按照队伍为最小粒度为用户批量分配活动任务的技术手段,所以克服了现有技术中组队阶段不能及时对用户请求做出响应、分配活动任务阶段使用锁机制逐个处理用户请求而导致的处理效率较低的技术问题,进而达到及时对用户请求做出响应以提高用户体验、批量分配活动任务而提升整体效率的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明第一实施例的一种业务请求处理方法的主要流程的示意图;
图2是根据本发明第二实施例的一种业务请求处理方法中生成待处理参团队伍的方法的主要流程示意图;
图3是根据本发明第三实施例的一种业务请求处理装置的主要模块的示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明第一实施例的一种业务请求处理方法的主要流程的示意图,如图1所示,包括:
步骤S101、接收用户资源共享的请求,根据所述请求的预设属性值,生成待处理参团队伍;
步骤S102、将所述队伍中用户的请求存入循环缓冲区;
步骤S103、当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,以使所述待处理参团队伍通过执行所述活动任务实现资源共享。
对于资源共享业务,可以是拼团购物、拼团旅游、拼团买课上课等活动业务;在资源共享业务中,可以分为两个阶段:生成待处理参团队伍(组队)阶段,和执行活动任务阶段;
用户参与并实现资源共享的过程,可以看作是群体用户先按照一定的流程成功参与活动业务(如:成功组队),再完成指定的活动任务,即可以实现资源共享。其中,活动任务可以根据不同的资源共享业务进行设置,如:对于拼团购物业务,活动任务可以是为各个用户分配的订单支付任务;对于拼团旅游业务,活动任务可以是为各个用户分配的确认旅游相关事宜以及支付旅游相关费用等任务;对于拼团买课上课业务,活动任务可以是为各个用户分配的确认课程相关事宜以及支付课程相关费用等任务。
在本发明提供的方法中,在生成待处理参团队伍(组队)阶段,可以对接受到的用户请求快速进行处理,以确定用户是否成功进入到待处理参团队伍中,进而可以基于此快速对用户做出反馈,提升用户体验;在执行活动任务(如:购买)阶段,可以使用循环缓冲区,以一种无锁的线程安全方式获取到至少一个待处理参团队伍,以队伍为最小粒度为队伍中的用户创建活动任务,以使队伍中的用户可以同一批执行活动任务并完成以实现资源共享(如:拼团购买),提升资源共享业务的整体效率,也提升了用户体验。
在一些实施例中,在所述接收用户资源共享的请求之前,还包括:
获取资源共享业务信息;将所述资源共享业务信息转化为业务参数数据;基于所述业务参数数据为所述资源共享业务创建业务入口。
进一步地,在一些实施例中,
所述业务参数数据至少包括:资源共享业务标识、开始时刻,结束时刻、资源物品标识、资源物品的总库存量、队伍内人数上限值、队伍数量上限值;
在根据所述请求的预设属性值,生成待处理参团队伍之前,还包括:当检测到当前时间达到所述开始时刻,开放所述业务入口,以接收用户资源共享的请求;以及,
当检测到当前时间达到所述结束时刻或检测到生成的待处理参团队伍数量值达到所述队伍数量上限值,关闭所述业务入口,以停止接收用户资源共享的请求。
资源共享业务(如:拼团业务)信息可以是活动创建者或主办方指定的数据信息,如:活动名称、活动开始、结束时间,活动对应的目标物品种类、各物品预占库存数量、购买物品时的限制数量(如:必须按某比例购买,或购买某物品的限制数量);参团队伍中人数数量限制,预计的参团队伍数量/参与活动总人数数量;
其中,可以根据实际的业务需求将活动总人数数量设置地比物品预占库存量多,如:可以设置活动总人数数量是物品预占库存数量的a倍,a为大于1的自定义系数,进而可以增加物品都卖出去的可能性;也可以根据实际的业务需求将活动总人数数量设置地比物品预占库存量少,则可以增加进入到参团队伍的用户最终都购买成功的可能性。
可以根据资源共享业务信息转换为业务参数数据:
可以根据活动信息中的活动开始、结束时间,转化格式为开始时刻参数,结束时刻参数;根据活动名称查找对应的活动标识;
根据活动对应的目标物品种类、各物品预占库存数量、购买物品时的限制条件,计算出资源物品的总库存量;如:若目标物品只有一种,则标准预占库存量参数可以认为是该物品的总库存量;若目标物品有多种,则可以根据各物品预占库存数量和所述限制数量,计算出各物品的预占库存数量与限制数量的商值,以所有商值中的最小值,作为资源物品的总库存量;
可以以活动信息中的参团队伍中人数数量限制,作为队伍内人数上限值;根据预计的拼团小队数量/参与活动总人数数量,确定最终的队伍数量上限值。
进而可以根据业务参数数据为所述拼团业务创建业务入口,业务入口可以用于根据开始时刻。结束时刻分别控制接收用户请求和停止接收用户请求,使得在活动期间以外的时间不接收用户请求。
在一些实施例中,所述预设属性值包括:用户标识、所述用户请求的目标队伍的队伍标识、所述目标队伍中目标位信息;所述目标位包括:队长位、队员位;
所述根据所述请求的预设属性值,生成待处理参团队伍,包括:
根据所述请求在一级缓存生成所述队伍标识与所述用户标识的对应关系;
判断二级缓存中是否存在所述目标队伍的队伍数据;若否,基于所述对应关系在所述二级缓存中创建所述目标队伍的队伍数据;若是,将所述对应关系更新至所述目标队伍的队伍数据;所述队伍数据包括:队伍标识与队伍中用户的用户标识的对应关系;
当所述目标队伍数据中对应关系的个数达到所述队伍内人数上限值,以所述目标队伍作为待处理参团队伍。
用户请求可以看做有两种:成为队长的请求,申请加入队伍的请求;在业务入口的页面,可以向用户展示两种页面以及相应的选项按钮;且还未到达结束时刻的情况下,当检测到该拼团活动的待处理参团队伍的数量已满足业务参数中的队伍数量上限值时,可以提前关闭业务入口,以停止接收用户请求;对于两种用户请求,生成待处理参团队伍的过程可以是:
(1)对于成为队长的请求,会生成一个新的队伍标识(队伍标识可以指示着活动标识),并在一级缓存生成一条数据,该数据中包括该队伍标识与该用户标识的对应关系;之后将该数据写入二级缓存(如:Redis),若写入成功,则在二级缓存中生成该队伍的队伍数据:该队伍标识与该用户标识的对应关系;其中,当有多个用户竞争同一队伍队长时,在将数据写入二级缓存的过程中,只有一个数据可以写入成功,其余数据都会写入失败;
(2)对于申请加入队伍的请求,在一级缓存生成一条数据,该数据中包括该队伍标识与该用户标识的对应关系;之后将该数据写入二级缓存(如:Redis),若写入成功,则在二级缓存中更新该队伍的队伍数据:将该队伍标识与该用户标识的对应关系添加到已有的队伍数据中;其中,当有多个用户竞争同一队伍的最后一个队员名额时,在将数据写入二级缓存的过程中,只有一个数据可以写入成功,其余数据都会写入失败;
上述过程中的二级缓存,可以使用key-value数据库,如Redis;在一些实际应用中,可以选用可持久化存储的二级缓存,使得数据更难以丢失。
当二级缓存中队伍数据中对应关系的个数达到业务参数中的队伍内人数上限值,则可以将该队伍作为待处理参团队伍。
在一些实际应用中,在生成处理参团队伍之前,还可以判断队伍中是否已存在相同的用户标识,若存在,可以拒绝写入队伍数据,拒绝该用户的请求,进而避免队伍资源的浪费,或降低一些恶意用户故意抢占名额的可能性;也可以不在上述过程中判断队伍中是否已存在相同的用户标识,而在后续步骤中通过限制为同一用户标识分配活动任务(如:订单)的方法,降低一些恶意用户故意抢占名额的可能性。
在一些实施例中,本发明提供的业务请求处理方法还包括:在达到所述结束时刻之前,还包括:
当所述二级缓存中存在对应关系的个数未达到所述队伍内人数上限值的第二队伍数据,对所述第二队伍数据中的用户标识与队伍标识的对应关系进行调整,以使调整后至多存在一个对应关系个数未达到所述队伍内人数上限值的队伍。
在一些实施例中,在在所述二级缓存中创建或更新所述目标队伍的队伍数据之后,还包括:根据所述队伍数据是否创建成功或者是否更新成功的结果,向对应的用户返回进队成功或进队失败的通知消息;
在生成所述待处理参团队伍之后,还包括:向所述待处理参团队伍中的用户返回成团成功的通知消息;以及,
在检测到当前时间达到所述结束时刻之后,向对应关系个数未达到所述队伍内人数上限值的队伍中的用户,返回成团失败的通知消息。
可以根据实际情况设置一个第二预设时长,在离活动结束时刻还有该第二预设时长时,检测是否存在多个人数未满的队伍,若存在,可以直接对人数未满的队伍数据中的用户标识与队伍标识的对应关系进行调整;也可以先向用户发送“是否同意系统为你重新组队”的通知,用户确认后,再进行重新分队,即:对人数未满的队伍数据中的用户标识与队伍标识的对应关系进行调整;使尽可能多的用户进入到待处理参团队伍中;
通过上述过程,从用户角度来看,可以被及时告知是否能进队成功,避免了一直等待;且对于队伍一直没满的用户,系统可以提供重新分组的机会,提升了用户体验。
图2是根据本发明第二实施例的一种业务请求处理方法中生成待处理参团队伍的方法的主要流程示意图,如图2所示,包括:
步骤S201、接收用户的组队请求;
步骤S202、判断二级缓存中的队伍数据中,是否还存在所述请求所对应的目标位;其中,目标位包括:队长位、队员位;若是,执行步骤S203;若否,执行步骤S204;
步骤S203、判断该请求中的用户标志是否有过参与组队成功的记录,若是,执行步骤S204,若否,执行步骤S205;
步骤S204、确认组队失败,并向用户反馈组队失败消息;
步骤S205、确认组队成功,将该用户标识与队伍标识的对应关系写入二级缓存(如Redis)中,向用户反馈组队失败消息;并更新该用户的参与记录。
在一些实施例中,在将所述队伍中用户的请求存入循环缓冲区之前,还包括:
读取所述资源物品的总库存量n,确定出一个大于n的2的整数次幂值m;为所述资源共享业务创建数据槽个数为m的循环缓冲区;
所述将所述队伍中用户的请求存入循环缓冲区,包括:
将所述队伍数据中用户的请求存入所述循环缓冲区的数据槽中。
在实际应用中,将循环缓冲区的数据槽的个数设置为2的整数次幂值,可以更有利于基于二进制的计算机进行计算和处理;将循环缓冲区的数据槽的个数设置为比物品的总库存量n大,可以在短时间内接收到大量用户请求量、并大量生产待处理参团队伍的情况下,有足够的数据槽接收待处理参团队伍中的用户请求,进而能够尽快进行后续的分配活动任务(如:订单)步骤,避免影响整体效率。
在一些实施例中,当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务(如:订单),包括:
判断是否已存在创建活动任务(如:订单)时刻;若不存在,以所述开始时刻作为对比时刻;若存在,以最近一次创建活动任务时刻作为对比时刻;
判断在所述对比时刻之后的预设时长的时间段内,所述循环缓冲区中存入请求的个数是否达到预设值;其中,所述预设值是所述队伍内人数上限值的整数倍;
若是,在到达所述预设值的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务;
若否,在所述对比时刻之后预设时长的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务。
其中,所述预设值可以是根据实际的软、硬件条件而灵活调整的值;预设时长也是可以根据实际的拼团活动情况而灵活调整的值;
使用循环缓冲区,可以实现无锁的线程安全,相比于现有技术中使用锁机制逐个处理用户请求的处理方法,本发明中可以批量处理用户请求、批量为用户分配活动任务(如:订单),效率更高;且本发明中,可以以队伍为最小粒度进行处理,保证了同一个队伍中的用户可以在同一批被分配到活动任务(如:订单),保证了一定的公平性,使用户体验较佳。
在一些实施例中,在基于所述待处理参团队伍创建活动任务(如:订单)后,还包括:
将所述待处理参团队伍中的目标用户的请求从所述循环缓冲区中取出;
当所述目标用户执行所述活动任务成功,向该目标用户返回执行成功的通知消息,并生成对应的活动任务记录;如:对于订单任务,当用户根据订单完成购买,可以认为该用户执行成功,可以生成对应的订单记录;
当所述目标用户执行所述活动任务失败,向该用户返回执行失败的通知消息。
在一些实际应用中,对于执行活动任务失败的用户,也可以将该用户的请求放回循环缓冲区,并设置失败阈值;当用户执行活动任务的失败次数达到失败阈值时,才遗弃该用户的请求,并向该用户返回执行失败的通知消息。
图3是根据本发明第三实施例的一种业务请求处理装置的主要模块的示意图;如图3所示,业务请求处理装置300包括:
生成队伍模块301,用于接收用户资源共享的请求,根据所述请求的预设属性值,生成待处理参团队伍;
存入请求模块302,用于将所述队伍中用户的请求存入循环缓冲区;
创建活动任务模块303,用于当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,以使所述待处理参团队伍通过执行所述活动任务实现资源共享。
对于资源共享业务,可以是拼团购物、拼团旅游、拼团买课上课等活动业务;在资源共享业务中,可以分为两个阶段:生成待处理参团队伍(组队)阶段,和执行活动任务阶段;
用户参与并实现资源共享的过程,可以看作是群体用户先按照一定的流程成功参与活动业务(如:成功组队),再完成指定的活动任务,即可以实现资源共享。其中,活动任务可以根据不同的资源共享业务进行设置,如:对于拼团购物业务,活动任务可以是为各个用户分配的订单任务;对于拼团旅游业务,活动任务可以是为各个用户分配的确认旅游相关事宜以及支付旅游相关费用等任务;对于拼团买课上课业务,活动任务可以是为各个用户分配的确认课程相关事宜以及支付课程相关费用等任务。
在本发明提供的方法中,在生成待处理参团队伍(组队)阶段,可以对接受到的用户请求快速进行处理,以确定用户是否成功进入到待处理参团队伍中,进而可以基于此快速对用户做出反馈,提升用户体验;在执行活动任务(如:购买)阶段,可以使用循环缓冲区,以一种无锁的线程安全方式获取到至少一个待处理参团队伍,以队伍为最小粒度为队伍中的用户创建活动任务,以使队伍中的用户可以同一批执行活动任务并完成以实现资源共享(如:拼团购买),提升资源共享业务的整体效率,也提升了用户体验。
在一些实施例中,所述生成队伍模块在所述接收用户资源共享的请求之前,还包括:
获取资源共享业务信息;
将所述资源共享业务信息转化为业务参数数据;
基于所述业务参数数据为资源共享业务创建业务入口。
进一步地,在一些实施例中,
所述业务参数数据至少包括:资源共享业务标识、开始时刻,结束时刻、资源物品标识、资源物品的总库存量、队伍内人数上限值、队伍数量上限值;
所述生成队伍模块在根据所述请求的预设属性值,生成待处理参团队伍之前,还包括:当检测到当前时间达到所述开始时刻,开放所述业务入口,以接收用户资源共享的请求;以及,当检测到当前时间达到所述结束时刻或检测到生成的待处理参团队伍数量值达到所述队伍数量上限值,关闭所述业务入口,以停止接收用户资源共享的请求。
资源共享业务(如:拼团业务)信息可以是活动创建者或主办方指定的数据信息,如:活动名称、活动开始、结束时间,活动对应的目标物品种类、各物品预占库存数量、购买物品时的限制数量(如:必须按某比例购买,或购买某物品的限制数量);参团队伍中人数数量限制,预计的参团队伍数量/参与活动总人数数量;
其中,可以根据实际的业务需求将活动总人数数量设置地比物品预占库存量多,如:可以设置活动总人数数量是物品预占库存数量的a倍,a为大于1的自定义系数,进而可以增加物品都卖出去的可能性;也可以根据实际的业务需求将活动总人数数量设置地比物品预占库存量少,则可以增加进入到参团队伍的用户最终都购买成功的可能性。
可以根据拼团业务信息转换为业务参数数据:
可以根据活动信息中的活动开始、结束时间,转化格式为开始时刻参数,结束时刻参数;根据活动名称查找对应的活动标识;
根据活动对应的目标物品种类、各物品预占库存数量、购买物品时的限制条件,计算出资源物品的总库存量;如:若目标物品只有一种,则标准预占库存量参数可以认为是该物品的总库存量;若目标物品有多种,则可以根据各物品预占库存数量和所述限制数量,计算出各物品的预占库存数量与限制数量的商值,以所有商值中的最小值,作为资源物品的总库存量;
可以以活动信息中的参团队伍中人数数量限制,作为队伍内人数上限值;根据预计的拼团小队数量/参与活动总人数数量,确定最终的队伍数量上限值。
进而可以根据业务参数数据为所述拼团业务创建业务入口,业务入口可以用于根据开始时刻。结束时刻分别控制接收用户请求和停止接收用户请求,使得在活动期间以外的时间不接收用户请求。
在一些实施例中,所述预设属性值包括:用户标识、所述用户请求的目标队伍的队伍标识、所述目标队伍中目标位信息;所述目标位包括:队长位、队员位;
所述生成队伍模块根据所述请求的预设属性值,生成待处理参团队伍,包括:
根据所述请求在一级缓存生成所述队伍标识与所述用户标识的对应关系;
判断二级缓存中是否存在所述目标队伍的队伍数据;若否,基于所述对应关系在所述二级缓存中创建所述目标队伍的队伍数据;若是,将所述对应关系更新至所述目标队伍的队伍数据;所述队伍数据包括:队伍标识与队伍中用户的用户标识的对应关系;
当所述目标队伍数据中对应关系的个数达到所述队伍内人数上限值,以所述目标队伍作为待处理参团队伍。
用户请求可以看做有两种:成为队长的请求,申请加入队伍的请求;在业务入口的页面,可以向用户展示两种页面以及相应的选项按钮;且还未到达结束时刻的情况下,当检测到该拼团活动的待处理参团队伍的数量已满足业务参数中的队伍数量上限值时,可以提前关闭业务入口,以停止接收用户请求;对于两种用户请求,生成待处理参团队伍的过程可以是:
(1)对于成为队长的请求,会生成一个新的队伍标识(队伍标识可以指示着活动标识),并在一级缓存生成一条数据,该数据中包括该队伍标识与该用户标识的对应关系;之后将该数据写入二级缓存(如:Redis),若写入成功,则在二级缓存中生成该队伍的队伍数据:该队伍标识与该用户标识的对应关系;其中,当有多个用户竞争同一队伍队长时,在将数据写入二级缓存的过程中,只有一个数据可以写入成功,其余数据都会写入失败;
(2)对于申请加入队伍的请求,在一级缓存生成一条数据,该数据中包括该队伍标识与该用户标识的对应关系;之后将该数据写入二级缓存(如:Redis),若写入成功,则在二级缓存中更新该队伍的队伍数据:将该队伍标识与该用户标识的对应关系添加到已有的队伍数据中;其中,当有多个用户竞争同一队伍的最后一个队员名额时,在将数据写入二级缓存的过程中,只有一个数据可以写入成功,其余数据都会写入失败;
上述过程中的二级缓存,可以使用key-value数据库,如Redis;在一些实际应用中,可以选用可持久化存储的二级缓存,使得数据更难以丢失。
当二级缓存中队伍数据中对应关系的个数达到业务参数中的队伍内人数上限值,则可以将该队伍作为待处理参团队伍。
在一些实际应用中,在生成处理参团队伍之前,还可以判断队伍中是否已存在相同的用户标识,若存在,可以拒绝写入队伍数据,拒绝该用户的请求,进而避免队伍资源的浪费,或降低一些恶意用户故意抢占名额的可能性;也可以不在上述过程中判断队伍中是否已存在相同的用户标识,而在后续步骤中通过限制为同一用户标识分配订单的方法,降低一些恶意用户故意抢占名额的可能性。
在一些实施例中,所述生成队伍模块还用于:在达到所述结束时刻之前,还包括:
当所述二级缓存中存在对应关系的个数未达到所述队伍内人数上限值的第二队伍数据,对所述第二队伍数据中的用户标识与队伍标识的对应关系进行调整,以使调整后至多存在一个对应关系个数未达到所述队伍内人数上限值的队伍。
在一些实施例中,在在所述二级缓存中创建或更新所述目标队伍的队伍数据之后,所述生成队伍模块还用于:根据所述队伍数据是否创建成功或者是否更新成功的结果,向对应的用户返回进队成功或进队失败的通知消息;
在生成所述待处理参团队伍之后,还包括:向所述待处理参团队伍中的用户返回成团成功的通知消息;以及,
在检测到当前时间达到所述结束时刻之后,向对应关系个数未达到所述队伍内人数上限值的队伍中的用户,返回成团失败的通知消息。
可以根据实际情况设置一个第二预设时长,在离活动结束时刻还有该第二预设时长时,检测是否存在多个人数未满的队伍,若存在,可以直接对人数未满的队伍数据中的用户标识与队伍标识的对应关系进行调整;也可以先向用户发送“是否同意系统为你重新组队”的通知,用户确认后,再进行重新分队,即:对人数未满的队伍数据中的用户标识与队伍标识的对应关系进行调整;使尽可能多的用户进入到待处理参团队伍中;
通过上述过程,从用户角度来看,可以被及时告知是否能进队成功,避免了一直等待;且对于队伍一直没满的用户,系统可以提供重新分组的机会,提升了用户体验。
在一些实施例中,所述存入请求模块在将所述队伍中用户的请求存入循环缓冲区之前,还包括:
读取所述资源物品的总库存量n,确定出一个大于n的2的整数次幂值m;为所述资源共享业务创建数据槽个数为m的循环缓冲区;
所述将所述队伍中用户的请求存入循环缓冲区,包括:
将所述队伍数据中用户的请求存入所述循环缓冲区的数据槽中。
在实际应用中,将循环缓冲区的数据槽的个数设置为2的整数次幂值,可以更有利于基于二进制的计算机进行计算和处理;将循环缓冲区的数据槽的个数设置为比物品的总库存量n大,可以在短时间内接收到大量用户请求量、并大量生产待处理参团队伍的情况下,有足够的数据槽接收待处理参团队伍中的用户请求,进而能够尽快进行后续的分配订单步骤,避免影响整体效率。
在一些实施例中,当满足预设条件时,所述创建活动任务模块获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务(如:订单),包括:
判断是否已存在创建活动任务时刻;若不存在,以所述开始时刻作为对比时刻;若存在,以最近一次创建活动任务时刻作为对比时刻;
判断在所述对比时刻之后的预设时长的时间段内,所述循环缓冲区中存入请求的个数是否达到预设值;其中,所述预设值是所述队伍内人数上限值的整数倍;
若是,在到达所述预设值的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务;
若否,在所述对比时刻之后预设时长的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务。
其中,所述预设值可以是根据实际的软、硬件条件而灵活调整的值;预设时长也是可以根据实际的拼团活动情况而灵活调整的值;
使用循环缓冲区,可以实现无锁的线程安全,相比于现有技术中使用锁机制逐个处理用户请求的处理方法,本发明中可以批量处理用户请求、批量为用户分配活动任务(如:订单),效率更高;且本发明中,可以以队伍为最小粒度进行处理,保证了同一个队伍中的用户可以在同一批被分配到活动任务(如:订单),保证了一定的公平性,使用户体验较佳。
在一些实施例中,在基于所述待处理参团队伍创建活动任务(如:订单)后,所述创建活动任务模块还用于:
将所述待处理参团队伍中的目标用户的请求从所述循环缓冲区中取出;
当所述目标用户执行所述活动任务成功,向该目标用户返回执行成功的通知消息,并生成对应的活动任务记录;如:对于订单任务,当用户根据订单完成购买,可以认为该用户执行成功,可以生成对应的订单记录;
当所述目标用户执行所述订单任务失败,向该用户返回执行失败的通知消息。
在一些实际应用中,对于执行活动任务失败的用户,也可以将该用户的请求放回循环缓冲区,并设置失败阈值;当用户执行活动任务的失败次数达到失败阈值时,才遗弃该用户的请求,并向该用户返回执行失败的通知消息。
图4示出了可以应用本发明实施例的业务请求处理方法或业务请求处理装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本发明实施例所提供的业务请求处理方法一般由服务器405执行,相应地,业务请求处理装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括生成队伍模块、存入请求模块、创建活动任务模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,生成队伍模块还可以被描述为“接收所连接的服务端发送的用户请求并基于此生成队伍的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:步骤S101、接收用户资源共享的请求,根据所述请求的预设属性值,生成待处理参团队伍;步骤S102、将所述队伍中用户的请求存入循环缓冲区;步骤S103、当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,以使所述待处理参团队伍通过执行所述活动任务实现资源共享。
根据本发明实施例的技术方案,因为采用在组队阶段根据用户请求就确定并生成待处理参团队伍、以及都及时做出响应,在分配订单阶段使用循环缓冲区按照队伍为最小粒度为用户批量分配订单的技术手段,所以克服了现有技术中组队阶段不能及时对用户请求做出响应、分配订单阶段使用锁机制逐个处理用户请求而导致的处理效率较低的技术问题,进而达到及时对用户请求做出响应以提高用户体验、批量分配订单而提升整体效率的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种业务请求处理方法,其特征在于,包括:
接收用户资源共享的请求,根据所述请求的预设属性值,生成待处理参团队伍;
将所述队伍中用户的请求存入循环缓冲区;
当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,以使所述待处理参团队伍通过执行所述活动任务实现资源共享。
2.根据权利要求1所述的方法,其特征在于,在所述接收用户资源共享的请求之前,还包括:
获取资源共享业务信息;
将所述资源共享业务信息转化为业务参数数据;
基于所述业务参数数据为资源共享业务创建业务入口。
3.根据权利要求2所述的方法,其特征在于,所述业务参数数据至少包括:资源共享业务标识、开始时刻,结束时刻、资源物品标识、资源物品的总库存量、队伍内人数上限值、队伍数量上限值;
在根据所述请求的预设属性值,生成待处理参团队伍之前,还包括:当检测到当前时间达到所述开始时刻,开放所述业务入口,以接收用户资源共享的请求;以及,
当检测到当前时间达到所述结束时刻或检测到生成的待处理参团队伍数量值达到所述队伍数量上限值,关闭所述业务入口,以停止接收用户资源共享的请求。
4.根据权利要求3所述的方法,其特征在于,所述预设属性值包括:用户标识、所述用户请求的目标队伍的队伍标识、所述目标队伍中目标位信息;所述目标位包括:队长位、队员位;
所述根据所述请求的预设属性值,生成待处理参团队伍,包括:
根据所述请求在一级缓存生成所述队伍标识与所述用户标识的对应关系;
判断二级缓存中是否存在所述目标队伍的队伍数据;若否,基于所述对应关系在所述二级缓存中创建所述目标队伍的队伍数据;若是,将所述对应关系更新至所述目标队伍的队伍数据;所述队伍数据包括:队伍标识与队伍中用户的用户标识的对应关系;
当所述目标队伍数据中对应关系的个数达到所述队伍内人数上限值,以所述目标队伍作为待处理参团队伍。
5.根据权利要求4所述的方法,其特征在于,还包括:在达到所述结束时刻之前,还包括:
当所述二级缓存中存在对应关系的个数未达到所述队伍内人数上限值的第二队伍数据,对所述第二队伍数据中的用户标识与队伍标识的对应关系进行调整,以使调整后至多存在一个对应关系个数未达到所述队伍内人数上限值的队伍。
6.根据权利要求4所述的方法,其特征在于,在在所述二级缓存中创建或更新所述目标队伍的队伍数据之后,还包括:根据所述队伍数据是否创建成功或者是否更新成功的结果,向对应的用户返回进队成功或进队失败的通知消息;
在生成所述待处理参团队伍之后,还包括:向所述待处理参团队伍中的用户返回成团成功的通知消息;以及,
在检测到当前时间达到所述结束时刻之后,向对应关系个数未达到所述队伍内人数上限值的队伍中的用户,返回成团失败的通知消息。
7.根据权利要求3所述的方法,其特征在于,在将所述队伍中用户的请求存入循环缓冲区之前,还包括:
读取所述资源物品的总库存量n,确定出一个大于n的2的整数次幂值m;为所述资源共享业务创建数据槽个数为m的循环缓冲区;
所述将所述队伍中用户的请求存入循环缓冲区,包括:
将所述队伍数据中用户的请求存入所述循环缓冲区的数据槽中。
8.根据权利要求3所述的方法,其特征在于,当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,包括:
判断是否已存在创建活动任务时刻;若不存在,以所述开始时刻作为对比时刻;若存在,以最近一次创建活动任务时刻作为对比时刻;
判断在所述对比时刻之后的预设时长的时间段内,所述循环缓冲区中存入请求的个数是否达到预设值;其中,所述预设值是所述队伍内人数上限值的整数倍;
若是,在到达所述预设值的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务;
若否,在所述对比时刻之后预设时长的时刻时,获取所述循环缓冲区中的所有待处理参团队伍,并为所述所有待处理参团队伍中的目标用户创建各自的活动任务。
9.根据权利要求1所述的方法,其特征在于,在基于所述待处理参团队伍创建活动任务后,还包括:
将所述待处理参团队伍中的目标用户的请求从所述循环缓冲区中取出;
当所述目标用户执行所述活动任务成功,向该目标用户返回执行成功的通知消息,并生成对应的活动任务记录;
当所述目标用户执行所述活动任务失败,向该用户返回执行失败的通知消息。
10.一种业务请求处理装置,其特征在于,包括:
生成队伍模块,用于接收用户资源共享的请求,根据所述请求的预设属性值,生成待处理参团队伍;
存入请求模块,用于将所述队伍中用户的请求存入循环缓冲区;
创建活动任务模块,用于当满足预设条件时,获取所述循环缓冲区中的至少一个待处理参团队伍,并基于所述待处理参团队伍创建活动任务,以使所述待处理参团队伍通过执行所述活动任务实现资源共享。
11.一种业务请求处理电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110019668.0A CN113763101A (zh) | 2021-01-07 | 2021-01-07 | 一种业务请求处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110019668.0A CN113763101A (zh) | 2021-01-07 | 2021-01-07 | 一种业务请求处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113763101A true CN113763101A (zh) | 2021-12-07 |
Family
ID=78786263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110019668.0A Pending CN113763101A (zh) | 2021-01-07 | 2021-01-07 | 一种业务请求处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113763101A (zh) |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194427B1 (en) * | 1999-03-31 | 2007-03-20 | Vulcan Portals, Inc. | On-line group-buying sale with increased value system and method |
CN102402643A (zh) * | 2010-09-17 | 2012-04-04 | 腾讯科技(深圳)有限公司 | 一种网络游戏的组队方法及系统 |
US20130268385A1 (en) * | 2012-04-05 | 2013-10-10 | Dadny Inc. | Group-buying system and method thereof |
CN103905216A (zh) * | 2012-12-24 | 2014-07-02 | 广州华多网络科技有限公司 | 组队方法、客户端、服务器及系统 |
US20140188650A1 (en) * | 2012-01-06 | 2014-07-03 | Tencent Technology (Shenzhen) Company Limited | Mobile group-buying method, platform and machine readable storage medium |
KR20150112142A (ko) * | 2014-03-26 | 2015-10-07 | 주식회사 레드스트랩 | 팀 매칭 방법 및 시스템 |
CN106204248A (zh) * | 2016-08-30 | 2016-12-07 | 厦门啪啪圈科技有限公司 | 一种拼团智能匹配系统及其拼团匹配方法 |
CN108805754A (zh) * | 2018-05-25 | 2018-11-13 | 北斗时空信息技术研究院(北京)有限公司 | 一种伴游app组队系统和方法 |
CN108846438A (zh) * | 2018-06-15 | 2018-11-20 | 电子科技大学 | 一种基于现实地理位置的组队匹配方法 |
CN110782220A (zh) * | 2019-09-05 | 2020-02-11 | 杭州思劢科技有限公司 | 用于业务营销的数据处理系统 |
CN110787455A (zh) * | 2019-11-29 | 2020-02-14 | 网易(杭州)网络有限公司 | 游戏中玩家组队方法、装置及存储介质 |
CN110830810A (zh) * | 2019-09-25 | 2020-02-21 | 北京达佳互联信息技术有限公司 | 直播交互方法、装置、服务器及存储介质 |
CN110852791A (zh) * | 2019-10-28 | 2020-02-28 | 北京虾喜科技有限公司 | 一种智能拼团方法及系统 |
US20200134540A1 (en) * | 2018-10-24 | 2020-04-30 | Cognitive Talent Solutions, Inc. | Organizational Network Analysis System For Mergers, Acquisitions and Reorganizations |
CN111091253A (zh) * | 2018-10-23 | 2020-05-01 | 北京嘀嘀无限科技发展有限公司 | 网约车组队方法、装置、设备及存储介质 |
CN111111215A (zh) * | 2019-12-24 | 2020-05-08 | 北京像素软件科技股份有限公司 | 游戏匹配方法、装置、服务器及可读存储介质 |
CN111147872A (zh) * | 2019-12-14 | 2020-05-12 | 北京字节跳动网络技术有限公司 | 信息展示方法、装置和电子设备 |
CN111566708A (zh) * | 2018-02-11 | 2020-08-21 | 北京嘀嘀无限科技发展有限公司 | 用于服务平台的组队系统和方法 |
CN111667349A (zh) * | 2020-06-30 | 2020-09-15 | 拉扎斯网络科技(上海)有限公司 | 基于社交应用的拼单方法、客户端、服务器及系统 |
CN111681026A (zh) * | 2020-04-16 | 2020-09-18 | 上海淇玥信息技术有限公司 | 资源配置方法及其装置、电子设备和计算机可读存储介质 |
CN111760296A (zh) * | 2020-08-06 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 组队处理方法、装置、终端、服务器及存储介质 |
CN111773661A (zh) * | 2020-07-03 | 2020-10-16 | 珠海金山网络游戏科技有限公司 | 基于直播界面组队游戏的系统、方法及装置 |
-
2021
- 2021-01-07 CN CN202110019668.0A patent/CN113763101A/zh active Pending
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194427B1 (en) * | 1999-03-31 | 2007-03-20 | Vulcan Portals, Inc. | On-line group-buying sale with increased value system and method |
CN102402643A (zh) * | 2010-09-17 | 2012-04-04 | 腾讯科技(深圳)有限公司 | 一种网络游戏的组队方法及系统 |
US20140188650A1 (en) * | 2012-01-06 | 2014-07-03 | Tencent Technology (Shenzhen) Company Limited | Mobile group-buying method, platform and machine readable storage medium |
US20130268385A1 (en) * | 2012-04-05 | 2013-10-10 | Dadny Inc. | Group-buying system and method thereof |
CN103905216A (zh) * | 2012-12-24 | 2014-07-02 | 广州华多网络科技有限公司 | 组队方法、客户端、服务器及系统 |
KR20150112142A (ko) * | 2014-03-26 | 2015-10-07 | 주식회사 레드스트랩 | 팀 매칭 방법 및 시스템 |
CN106204248A (zh) * | 2016-08-30 | 2016-12-07 | 厦门啪啪圈科技有限公司 | 一种拼团智能匹配系统及其拼团匹配方法 |
CN111566708A (zh) * | 2018-02-11 | 2020-08-21 | 北京嘀嘀无限科技发展有限公司 | 用于服务平台的组队系统和方法 |
CN108805754A (zh) * | 2018-05-25 | 2018-11-13 | 北斗时空信息技术研究院(北京)有限公司 | 一种伴游app组队系统和方法 |
CN108846438A (zh) * | 2018-06-15 | 2018-11-20 | 电子科技大学 | 一种基于现实地理位置的组队匹配方法 |
CN111091253A (zh) * | 2018-10-23 | 2020-05-01 | 北京嘀嘀无限科技发展有限公司 | 网约车组队方法、装置、设备及存储介质 |
US20200134540A1 (en) * | 2018-10-24 | 2020-04-30 | Cognitive Talent Solutions, Inc. | Organizational Network Analysis System For Mergers, Acquisitions and Reorganizations |
CN110782220A (zh) * | 2019-09-05 | 2020-02-11 | 杭州思劢科技有限公司 | 用于业务营销的数据处理系统 |
CN110830810A (zh) * | 2019-09-25 | 2020-02-21 | 北京达佳互联信息技术有限公司 | 直播交互方法、装置、服务器及存储介质 |
CN110852791A (zh) * | 2019-10-28 | 2020-02-28 | 北京虾喜科技有限公司 | 一种智能拼团方法及系统 |
CN110787455A (zh) * | 2019-11-29 | 2020-02-14 | 网易(杭州)网络有限公司 | 游戏中玩家组队方法、装置及存储介质 |
CN111147872A (zh) * | 2019-12-14 | 2020-05-12 | 北京字节跳动网络技术有限公司 | 信息展示方法、装置和电子设备 |
CN111111215A (zh) * | 2019-12-24 | 2020-05-08 | 北京像素软件科技股份有限公司 | 游戏匹配方法、装置、服务器及可读存储介质 |
CN111681026A (zh) * | 2020-04-16 | 2020-09-18 | 上海淇玥信息技术有限公司 | 资源配置方法及其装置、电子设备和计算机可读存储介质 |
CN111667349A (zh) * | 2020-06-30 | 2020-09-15 | 拉扎斯网络科技(上海)有限公司 | 基于社交应用的拼单方法、客户端、服务器及系统 |
CN111773661A (zh) * | 2020-07-03 | 2020-10-16 | 珠海金山网络游戏科技有限公司 | 基于直播界面组队游戏的系统、方法及装置 |
CN111760296A (zh) * | 2020-08-06 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 组队处理方法、装置、终端、服务器及存储介质 |
Non-Patent Citations (3)
Title |
---|
DONG YAHUI等: "Research on the Problem and Countermeasures of Group-Buying", 《ADVANCED RESEARCH ON ELECTRONIC COMMERCE, WEB APPLICATION, AND COMMUNICATION》, vol. 144, 5 September 2012 (2012-09-05), pages 81 - 85 * |
刘翌著: "《私域流量池》", 31 March 2020, 机械工业出版社, pages: 120 * |
邓世名等: "销售商能力受限时与团购网站合作的最优策略研究", 《管理工程学报 》, vol. 31, no. 4, 31 October 2017 (2017-10-31), pages 131 - 139 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9634848B2 (en) | Message broadcasting in a clustered computing environment | |
CN109831501B (zh) | 基于区块链的信息分发方法和系统 | |
CN110516984B (zh) | 用于生成配送路径信息的方法和装置 | |
CN110866709A (zh) | 合并订单的方法和装置 | |
US20180039516A1 (en) | Heterogeneous auto-scaling using homogeneous auto-scaling groups | |
CN111127181B (zh) | 一种凭证记账方法和装置 | |
CN110706093A (zh) | 一种账务处理方法和装置 | |
CN107633358B (zh) | 设施选址及分配的方法和装置 | |
CN110738436A (zh) | 一种确定可用库存的方法和装置 | |
CN112884181A (zh) | 额度信息处理方法和装置 | |
CN110928594A (zh) | 服务开发方法和平台 | |
CN113761856A (zh) | 一种数据处理方法和装置 | |
CN112784212B (zh) | 一种优化库存的方法和装置 | |
CN112686528A (zh) | 用于分配客服资源的方法、装置、服务器和介质 | |
CN113760521A (zh) | 一种虚拟资源的分配方法和装置 | |
CN108959636B (zh) | 数据处理方法、装置、系统、计算机可读介质 | |
CN112948138A (zh) | 一种处理消息的方法和装置 | |
CN113763101A (zh) | 一种业务请求处理方法和装置 | |
CN114417318A (zh) | 第三方页面的跳转方法、装置和电子设备 | |
CN111833037A (zh) | 一种账户管理的方法及装置 | |
CN112785323A (zh) | 资源分配方法、装置与电子设备 | |
CN111580882A (zh) | 应用程序启动方法、装置、计算机系统和介质 | |
CN113127561A (zh) | 业务单号的生成方法、装置、电子设备和存储介质 | |
CN110895777A (zh) | 一种处理超时服务单的方法和装置 | |
CN111027809B (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 |