一种请求的处理方法及装置的制造方法_2

文档序号:9547289阅读:来源:国知局
所提供的请求的处理方法的实施例一的流程示例图;
[0047]图3是本发明实施例所提供的请求的处理装置的功能方块图。
【【具体实施方式】】
[0048]为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
[0049]应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0050]在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0051]应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0052]取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
[0053]本发明实施例给出一种请求的处理方法,请参考图1,其为本发明实施例所提供的请求的处理方法的流程示意图,如图所示,该方法包括以下步骤:
[0054]S101,接收至少两个获取请求。
[0055]S102,逐一针对所述至少两个获取请求中每个所述获取请求,若确定缓存队列中有未分配的数据对象的标识信息,从未分配的数据对象的标识信息中获取一个数据对象的标识信息,建立获取的数据对象的标识信息与发送获取请求的用户之间的映射关系。
[0056]需要说明的是,S101?S102的执行主体可以为请求的处理装置,该装置可以位于服务器,本发明实施例对此不进行特别限定。
[0057]可选的,在本实施例的一个可能的实现方式中,可以预先将至少一个数据对象中每个数据对象的标识信息保存在缓存队列。
[0058]在一个具体的实现过程中,请参考图2,其为本发明实施例所提供的请求的处理方法的实施例一的流程示例图,如图2所示,对于等待分配给用户的至少一个数据对象,可以根据数据对象的价值、类别等属性,对至少一个数据对象的标识信息进行排序,以获得排序结果,然后将排序结果存储在缓存队列中,如此,实现将每个数据对象的标识信息存储在缓存队列。
[0059]例如,所述数据对象可以为等待用户抢购的物品,可以根据同一物品的颜色、型号和数量等,将同一颜色、同一型号的该物品的标识信息存储在同一个缓存队列中,这样该缓存队列中存储相应数量的相同的标识信息。若该物品有两个颜色,则可以利用两个缓存队列进行存储,一个缓存队列用于保存一个颜色的若干该物品的标识信息,另一个缓存队列用于保存另一个颜色的若干该物品的标识信息。
[0060]或者,又例如,所述数据对象可以是等待用户争抢的红包,可以根据红包的价值由高到底,对若干红包进行排序,以获得排序结果,然后利用一个缓存队列缓存该排序结果,这样,该缓存队列中就存储了若干红包的标识信息。
[0061]可选的,在本实施例的一个可能的实现方式中,如图2所示,还可以将至少一个数据对象中每个数据对象的标识信息同时保存在数据库。
[0062]在一个具体的实现过程中,如图2所示,将待分配的至少一个数据对象中每个数据对象的标识信息保存在缓存队列之后,用户可以在所使用的客户端上操作,以触发客户端向服务器发送获取请求,这样,服务器就可以接收到至少两个客户端中每个客户端发送的获取请求。
[0063]例如,可以在客户端上显示“抢购”按钮,若用户点击该“抢购”按钮,则客户端受到触发,向服务器发送获取请求,用于请求获取该“抢购”按钮针对的数据对象。或者,又例如,可以在客户端上显示“抢红包”按钮,如果用户点击该“抢购”按钮,则客户端受到触发,向服务器发送获取请求,用于请求获取红包。
[0064]在一个具体的实现过程中,为了保证同时只为一个用户分配数据对象,需要保证服务器同时只能有一个获取请求在处理,因此,本发明实施例中,在服务器上采用原子操作,这种操作一旦开始,就一直运行到结束,中间不会有任何打断,不会切换到另一个线程。
[0065]所述服务器上采用原子操作对获取请求处理的方法可以包括但不限于:所述服务器的接收模块用于接收至少两个客户端中每个客户端发送的获取请求。为了保证同时为一个用户分配数据对象,则需要保证服务器的处理模块同时只能有一个获取请求在处理,因此,所述服务器的接收模块需要逐一将至少两个获取请求中每个获取请求发送给服务器的处理模块。
[0066]优选的,对于接收到的至少两个获取请求,所述服务器的接收模块可以根据先来后到的原则,按照接收顺序,将先收到的获取请求发送到处理模块,待处理模块根据该获取请求处理完毕之后,接收模块再将下一个接收到的获取请求发送到处理模块,以此类推。或者,服务器的接收模块也可以按照优先级由高到低的顺序,优先将优先级高的用户发送的获取请求,发送到处理模块进行处理。其中,用户的优先级可以根据用户的购买力度、会员等级和活跃度中至少一个确定。
[0067]在一个具体的实现过程中,如图2所示,所述服务器的处理模块逐一针对所述至少两个获取请求中每个所述获取请求,判断缓存队列中是否有未分配的数据对象的标识信息。
[0068]进一步的,如图2所示,若服务器的处理模块确定缓存队列中有未分配的数据对象的标识信息,则从未分配的数据对象的标识信息中获取一个数据对象的标识信息,然后,建立获取的数据对象的标识信息与发送获取请求的用户之间的映射关系。
[0069]可以理解的是,建立的数据对象的标识信息与发送获取请求的用户之间的映射关系,可以表示将该标识信息所指示的数据对象,分配给发送该获取请求的用户,这样该标识信息所指示的数据对象就被分配出去了,该用户获取到了该数据对象。
[0070]或者,如图2所示,若服务器的处理模块确定缓存队列中没有未分配的数据对象的标识信息,说明所述缓存队列中所有的标识信息所指示的数据对象,都已经分配出去,没有剩余的数据对象可供分配,则立即向发送所述获取请求的用户推送获取结果指示,所述获取结果指示用于指示所述数据对象获取失败。
[0071]举例说明,判断缓存队列中是否有未分配的数据对象的标识信息的方法可以包括但不限于以下两种:
[0072]第一种:服务器的处理模块从未分配的数据对象的标识信息中获取一个数据对象的标识信息,并为该数据对象的标识信息建立映射关系之后,表示该数据对象被分配出去,所以,处理模块可以在缓存队列中将该数据对象的标识信息删除,这样缓存队列中剩下的数据对象的标识信息就是未分配的数据对象的标识信息。如此,服务器的处理模块就可以根据缓存队列中是否有数据对象的标识信息,来判断缓存队列中是否有未分配的数据对象的标识信息,如果缓存队列中有数据对象的标识信息,则确定缓存队列中有未分配的数据对象的标识信息;反之,如果缓存队列中没有数据对象的标识信息,则确定缓存队列中没有未分配的数据对象的标识信息。
[0073]第二种:可以预先为缓存队列中的每个数据对象的标识信息配置对应的状态标识,所述状态标识用来指示对应的标识信息是否被分配。这样,服务器的处理模块可以根据缓存队列中是否有指示未分配的状态标识,来判
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1