请求处理方法、装置、计算机设备及计算机可读存储介质与流程

文档序号:28959234发布日期:2022-02-19 12:30阅读:67来源:国知局
请求处理方法、装置、计算机设备及计算机可读存储介质与流程

1.本发明涉及通信技术领域,尤其涉及一种请求处理方法、装置、计算机设备及计算机可读存储介质。


背景技术:

2.随着社交平台的兴起,人们越来越习惯在各类社交平台应用上发表自己的观点或看法,如用户对社交平台应用中显示的某个观点赞同时,可点击终端上显示的“点赞”按钮,进而终端将“点赞”请求发送至服务器,服务器接收并执行“点赞”请求对应的业务操作,并更新社交平台软件中该观点对应“点赞”数。
3.而当用户重复点击“点赞”按钮,终端重复地将“点赞”请求发送至服务器,服务器对应查询数据库应用中是否有请求执行记录,以判断终端发送的每个“点赞”请求对应的业务操作是否执行过,若是则不执行相应的业务操作。
4.不难发现,当终端重复发送与“点赞”请求类似的请求时,服务器需重复查询数据库以保证请求响应和数据正确,这对服务器和搭载在服务器中的数据库应用均带来了一定的压力。


技术实现要素:

5.有鉴于此,本发明提供一种请求处理方法、装置、计算机设备及计算机可读存储介质,用于改善终端重复发送与“点赞”请求类似的请求至服务器时,将给服务器和搭载在服务器中的数据库应用均带来了一定的压力的现状。
6.第一方面,本发明实施例提供一种请求处理方法,应用于服务器,所述服务器设置有第一数据库,所述方法包括:
7.生成与请求对应的第一令牌;
8.将所述第一令牌存储至所述第一数据库中,并发送所述第一令牌至终端;
9.接收所述终端发送的待处理请求,其中,所述待处理请求包括第二令牌;
10.若所述第一数据库中存在与所述第二令牌匹配的第一令牌,执行所述待处理请求对应的操作,并删除所述第一数据库中所述与所述第二令牌匹配的第一令牌。
11.可选的,在本发明实施例提供的一种实施方式中,所述执行所述待处理请求对应的操作,并删除所述第一数据库中所述与所述第二令牌匹配的第一令牌之后,还包括:
12.间隔预设时长后,执行所述生成与请求对应的第一令牌的步骤。
13.可选的,在本发明实施例提供的一种实施方式中,还包括:
14.若所述第一数据库中不存在与第二令牌匹配的第一令牌,向所述终端发送请求非法通知信息。
15.可选的,在本发明实施例提供的一种实施方式中,所述服务器还设置有所述第一数据库对应的主数据库,所述方法还包括:
16.响应数据库同步请求,将所述第一数据库存储的数据和所述主数据库存储的数据
同步。
17.进一步的,在本发明实施例提供的一种实施方式中,还包括:
18.根据每个预定时段内接收到的待处理请求的数量,确定数据库同步时段;
19.在所述数据库同步时段内,将所述第一数据库存储的数据和所述主数据库存储的数据同步。
20.可选的,在本发明实施例提供的一种实施方式中,还包括:
21.设置所述第一令牌的有效时间;
22.若存储在所述第一数据库中的第一令牌的存储时间大于等于所述有效时间,删除所述存储在所述第一数据库中的第一令牌。
23.第二方面,本发明实施例提供一种请求处理装置,应用于服务器,所述服务器设置有第一数据库,所述装置包括:
24.生成模块,用于生成与请求对应的第一令牌;
25.存储模块,用于将所述第一令牌存储至所述第一数据库中,并发送所述第一令牌至终端;
26.接收模块,用于接收所述终端发送的待处理请求,其中,所述待处理请求包括第二令牌;
27.执行模块,用于若所述第一数据库中存在与所述第二令牌匹配的第一令牌,执行所述待处理请求对应的操作,并删除所述第一数据库中所述与所述第二令牌匹配的第一令牌。
28.可选的,在本发明实施例提供的一种实施方式中,所述执行所述待处理请求对应的操作,并删除所述第一数据库中所述与所述第二令牌匹配的第一令牌之后,所述生成模块还用于间隔预设时长后,生成与请求对应的第一令牌。
29.第三方面,本发明实施例提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的请求处理方法。
30.第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的请求处理方法。
31.本发明实施例提供的请求处理方法中,服务器在用户发起请求之前,生成与请求对应的第一令牌,再将所述第一令牌存储至所述第一数据库中,并发送所述第一令牌至终端,以使终端发送请求时,将接收到的令牌一并发送至服务器;接着,当服务器接收所述终端发送的包含第二令牌的待处理请求后,若确定所述第一数据库中存在与所述第二令牌匹配的第一令牌,即确定所述终端发送的所述第二令牌为服务器先前发送给终端的第一令牌,则执行所述待处理请求对应的操作,并删除所述第一数据库中所述与所述第二令牌匹配的第一令牌,进而服务器若再次接收到终端发送的包含第二令牌的请求时,由于数据库中不存在匹配的第一令牌,故不再执行所述待处理请求对应的操作。
32.由此,本发明实施例通过令牌的生成与匹配,使得服务器只需判断数据库中是否存在匹配的令牌,即可确定请求是否重复/执行,进而降低了服务器和搭载在服务器中的数据库应用的压力;不仅如此,本发明实施例还通过令牌存在才可处理请求的机制,有效保证
了一个终端或一个用户发送的请求只能被执行一次,保证了数据库中的数据准确。
附图说明
33.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
34.图1示出了本发明实施例提供的第一种请求处理方法的流程示意图;
35.图2示出了本发明实施例提供的第二种请求处理方法的流程示意图;
36.图3示出了本发明实施例提供的第三种请求处理方法的流程示意图;
37.图4示出了本发明实施例提供的请求处理装置的结构示意图。
具体实施方式
38.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
39.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
41.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
42.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
43.参照图1,图1示出了本发明实施例提供的第一种请求处理方法的流程示意图,本发明实施例提供的请求处理方法应用于服务器,所述服务器设置有第一数据库,所述方法包括:
44.s110,生成与请求对应的第一令牌。
45.需说明的是,本发明实施例需在用户通过终端发送与“点赞”请求类似的请求之前生成令牌。令牌可理解为一串用于验证请求合法性的字符串。
46.还需说明的是,本发明实施例除要求令牌生成需在用户通过终端发送与“点赞”请求类似的请求之前外,不再对令牌生成时机和/或令牌生成过程进行任何限定。
47.示范性的,在一种可行的方式中,令牌生成时机为用户通过账号和密码登录网页
或应用时,服务器利用数据库验证账号和密码无误时,生成令牌发送至终端。
48.而在一种可实现的方式中,令牌生成过程包括:服务器利用数据库验证账号和密码无误时,将账号和密码拼接成一串字符串,并将字符串转换为哈希值,以将哈希值作为令牌。
49.s120,将所述第一令牌存储至所述第一数据库中,并发送所述第一令牌至终端。
50.也即,服务器将生成的令牌存储至数据库,并发送给终端;进而使终端在发送请求时,可将接收到的令牌一并发送至终端。
51.可选的,第一数据库可是redis(remote dictionary server,远程字典服务)数据库。
52.可以理解的是,当服务器接收到大量重复的一类请求,需对数据库中的数据进行读取或修改时,若请求对应的事务操作相对复杂,则基于关系型数据库或图数据库的数据处理过程将占用相当多的计算机资源,且在高并发的请求处理过程中,服务器极有可能崩溃。
53.因此,可将此类请求对应的待读取数据/待修改数据存储至redis数据库中,进而服务器接收到此类请求后,可直接在redis数据库读取/修改数据,以此减少此类请求对应的事务操作给计算机设备带来的负荷。
54.s130,接收所述终端发送的待处理请求,其中,所述待处理请求包括第二令牌。
55.也即,终端利用先前接收到的令牌来生成请求,以使服务器接收到请求后,从请求中解析出终端发送的令牌,进而完成令牌验证。
56.s140,若所述第一数据库中存在与所述第二令牌匹配的第一令牌,执行所述待处理请求对应的操作,并删除所述第一数据库中所述与所述第二令牌匹配的第一令牌。
57.也即,服务器解析出请求中的第二令牌后,可遍历第一数据库中存储的第一令牌,以判断第二令牌是否为“终端在接收到服务器发送的第一令牌后,首次根据第一令牌生成的待处理请求”。
58.若是,则执行待处理请求对应的事务操作,并删除第一数据库中存储的与第二令牌匹配的第一令牌,以避免终端在接收到服务器发送的第一令牌后,多次生成请求并发送至服务器,导致服务器需不断查询数据库或缓存等存储空间中,是否有请求执行记录的情况。
59.若否,服务器则认定接收到的待处理请求为非法请求/重复请求。需说明的是,本发明实施例不限定服务器接收到非法请求/重复请求的处理方式,非法请求/重复请求的处理方式可根据实际情况调整。
60.示范性的,在一种可行的实施方式中,当服务器接收到非法请求/重复请求,即所述第一数据库中不存在与所述第二令牌匹配的第一令牌时,服务器将此次接收到的待处理请求作为非法请求,并记录同一终端发送非法请求的次数,当同一终端发送非法请求的次数大于预设次数,将终端视作恶意终端,并将恶意终端的ip(internet protocol,网际互连协议)地址封禁,以拒绝接收恶意终端发送的非法请求。
61.而在另一种可行的实施方式中,可参考图2,图2示出了本发明实施例提供的请求处理方法的第二种流程示意图,即所述方法还包括:
62.s150,若所述第一数据库中不存在与第二令牌匹配的第一令牌,向所述终端发送
请求非法通知信息。
63.由此,本发明实施例基于令牌的生成与验证,使得终端发送的重复请求仅能执行一次,进而可有效保证数据库中请求对应的数据的真实性;不仅如此,本发明实施例使得服务器只需判断数据库中匹配的令牌是否存在,即可确定请求是否重复/执行,从而降低了服务器和搭载在服务器中的数据库应用的压力。
64.可选的,在本发明实施例提供的一种实施方式中,s140之后,还包括:
65.间隔预设时长后,执行所述生成与请求对应的第一令牌的步骤。
66.可以理解的是,并不是所有的请求均只能被处理一次,如社交平台中的“评论”请求或“转发”请求等等,此类请求可被执行多次。
67.因此,在此种实施方式下,本发明实施例中的服务器在执行“终端在接收到服务器发送的第一令牌后,首次根据第一令牌生成的待处理请求”对应的事务操作,删除对应的第一令牌的预设时长之后,生成新的第一令牌以存储于第一数据库并发送至终端,进而终端可根据新收到的第一令牌生成新的请求,以使服务器执行新的请求对应事务操作。
68.可选的,参考图3,图3示出了本发明实施例提供的第二种请求处理方法的流程示意图,即在本发明实施例的一种可行方式中,所述服务器还设置有所述第一数据库对应的主数据库,所述方法还包括:
69.s160,响应数据库同步请求,将所述第一数据库存储的数据和所述主数据库存储的数据同步。
70.需说明的是,图3仅用于更好地说明本发明实施例提供的此种实施方式下的请求处理方法,并不用于限定本发明实施例中s160的执行顺序,s160可在任意一个步骤的前后被执行。
71.可以理解的是,redis数据库支持主数据库和从数据库的数据同步,数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
72.而在本发明实施例中,当第一数据库为redis数据库时,将设置redis数据库对应的至少一个主数据库;主数据库可以是图数据库或者关系型数据库。在第一数据库初始化时,将从主数据库中取出预设数量的数据以写入第一数据库,完成第一数据库的初始化。
73.还可以理解的是,主数据库和从数据库的数据同步需占用一定的计算机资源,进而在第一数据库的数据和第二数据库的数据同步过程中,服务器处理请求的效率不可避免地会降低,因此,为降低主数据库和从数据库的数据同步所带来的负面影响,在本发明实施例提出的一种可行方式中,所述方法还包括:
74.根据每个预定时段内接收到的待处理请求的数量,确定数据库同步时段;
75.在所述数据库同步时段内,将所述第一数据库存储的数据和所述主数据库存储的数据同步。
76.也即,服务器根据每个预定时段内接收到的待处理请求的数量,将接收到的待处理请求数量较少的预定时段作为数据库同步时段,即在用户不活跃的期间将第二数据库的数据和第一数据库的数据同步,进而减少数据同步过程给用户带来的影响。
77.可选的,在本发明实施例提供的一种实施方式中,还包括:
78.设置所述第一令牌的有效时间;
79.若存储在所述第一数据库中的第一令牌的存储时间大于等于所述有效时间,删除
所述存储在所述第一数据库中的第一令牌。
80.可以理解的是,为每个第一令牌设置有效时间,用于避免终端长时间不发送请求而浪费服务器用于存储第一令牌的空间。不仅如此,还用于保证当数据库异常而未在请求对应的事务操作结束后,及时删除请求对应的第一令牌时,请求对应的第一令牌也将在存储时间大于等于有效时间时被删除,保证本发明实施例提出的请求处理方法的稳定执行。
81.与本发明实施例提供的请求处理方法相对应的,本发明实施例还提供一种请求处理装置,参照图4,图4示出了本发明实施例提供的请求处理装置的结构示意图,本发明实施例提供的请求处理装置200应用于服务器,所述服务器设置有第一数据库,所述装置包括:
82.生成模块210,用于生成与请求对应的第一令牌;
83.存储模块220,用于将所述第一令牌存储至所述第一数据库中,并发送所述第一令牌至终端;
84.接收模块230,用于接收所述终端发送的待处理请求,其中,所述待处理请求包括第二令牌;
85.执行模块240,用于若所述第一数据库中存在与所述第二令牌匹配的第一令牌,执行所述待处理请求对应的操作,并删除所述第一数据库中所述与所述第二令牌匹配的第一令牌。
86.本技术实施例提供的请求处理装置能够实现图1的方法实施例中请求处理方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
87.可选的,在本发明实施例提供的一种实施方式中,所述执行所述待处理请求对应的操作,并删除所述第一数据库中所述与所述第二令牌匹配的第一令牌之后,所述生成模块210还用于间隔预设时长后,生成与请求对应的第一令牌。
88.本发明实施例还提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如图1公开的方法实施例中公开的请求处理方法。
89.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如图1公开的方法实施例中公开的请求处理方法。
90.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
91.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
92.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
93.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1