一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

请求执行方法、服务器、计算机设备和存储介质与流程

2021-11-05 22:37:00 来源:中国专利 TAG:


1.本发明属于计算机技术领域,具体提供一种基于接口幂等的请求执行方法、服务器、计算机设备和存储介质。


背景技术:

2.在交易系统中,若一笔相同流水号的交易被反复多次调用,会导致用户的订单数据出现多笔。用户在导出自己流水的时候会有重复处理记录。对于交易系统管理方,造成交易混乱,业务无法正常处理。例如,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条。如果在高并发交易洪峰的情况下,会产生更加严重的交易错误。
3.相应地,本领域需要一种新的方案来解决上述问题。


技术实现要素:

4.本发明旨在解决上述技术问题,即,解决在交易系统中一笔相同流水号的交易被反复多次调用,导致订单数据出现多笔的问题。
5.根据本发明的第一方面,本发明提供一种基于接口幂等的请求处理方法,所述方法包括:步骤102,接收客户端的业务请求;步骤104,判断所述业务请求是否是第一次请求;步骤106,若是,则执行所述业务请求对应的任务。
6.在上述请求处理方法的一个实施方式中,所述步骤102之前还包括:在接收来自所述客户端的验证请求后,向所述客户端分发唯一标识,并保存所述唯一标识于数据库中;所述业务请求包含所述唯一标识;在所述步骤104中,判断所述业务请求中包含的唯一标识是否保存于所述数据库中,若是,则确定所述业务请求是第一次请求;步骤106还包括,在执行所述任务后,删除所述数据库中与所述业务请求对应的唯一标识。
7.在上述请求处理方法的一个实施方式中,所述步骤102之前还包括:建立去重表,所述去重表包含已处理过请求信息对应的唯一索引;在步骤104中,将所述业务请求对应的信息插入所述去重表中,若插入成功,则确定所述业务请求是第一次请求;若插入所述去重表失败,则向所述客户端返回已执行消息。
8.在上述请求处理方法的一个实施方式中,步骤102进一步包括:在接收到所述业务请求后,为所述业务请求分配唯一字段信息;步骤104进一步包括:将所述唯一字段信息以setnx方式存入数据库中,若尝试存储时间未超过预设值,则确定所述业务请求是第一次请求。
9.根据本发明的第二方面,还提供了一种服务器,包括:接收单元,接收客户端的业务请求;判断单元,判断所述业务请求是否是第一次请求;执行单元,在所述判断单元的判断结果为是时,执行所述业务请求对应的任务。
10.在上述服务器的一个实施方式中,所述接收单元在接收来自所述客户端的验证请
求后,向所述客户端分发唯一标识,并保存所述唯一标识于数据库中;所述业务请求包含所述唯一标识;所述判断单元判断所述业务请求中包含的唯一标识是否保存于所述数据库中,若是,则确定所述业务请求是第一次请求;所述执行单元还用于在执行所述任务后,删除所述数据库中与所述业务请求对应的唯一标识。
11.在上述服务器的一个实施方式中,所述判断单元还用于建立去重表,所述去重表包含已处理过请求信息对应的唯一索引;所述判断单元将所述业务请求对应的信息插入所述去重表中,若插入成功,则确定所述业务请求是第一次请求,若插入所述去重表失败,则向所述客户端返回已执行消息。
12.在上述服务器的一个实施方式中,所述判断单元在接收到所述业务请求后,为所述业务请求分配唯一字段信息,并将所述唯一字段信息以setnx方式存入数据库中,若尝试存储时间未超过预设值,则确定所述业务请求是第一次请求。
13.根据本发明的第三方面,还提供了一种计算机设备,包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述任一实施例所述的基于接口幂等的请求执行方法。
14.根据本发明的第四方面,还提供了一种存储介质,所述存储介质适于存储多条程序代码,所述程序代码适于由处理器加载并运行以执行上述任一实施例所述的基于接口幂等的请求执行方法。
15.在采用上述技术方案的情况下,本发明设计了一套基于接口幂等的请求处理机制,判断是否是当前请求是否已经被处理过,即判断是否是第一次请求,若是,则进行正常处理,若不是,则不进行处理。对于判断是否是第一次请求的方法,本发明还提供了多种实施手段,解决了在交易系统的开发过程中由于一笔相同流水号的交易被反复多次调用,导致用户的订单数据出现多笔的问题。
附图说明
16.下面结合附图来描述本发明的优选实施方式,附图中:
17.图1是根据本发明实施例的基于接口幂等的请求执行方法的主要步骤流程图。
18.图2是根据本发明的一个实施例的基于接口幂等的请求执行方法的流程图。
19.图3是根据本发明的另一实施例的基于接口幂等的请求执行方法的流程图。
20.图4是根据本发明的又一实施例的基于接口幂等的请求执行方法的流程图。
21.图5是本发明实施例的服务器的结构示意图。
具体实施方式
22.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等序数词仅用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。应该理解这样使用的数据在适当的情况下可以互换,以便这里描述的本发明的实施例能够以除
了在这里图示或描述的那些以外的顺序实施。
24.需要说明的是,在本技术的描述中,术语“a和/或b”表示所有可能的a与b的组合,比如只是a、只是b或者a和b。
25.首先阅读图1,图1是本发明实施例的请求处理方法的主要步骤流程图。如图1所示,本发明的请求处理方法包括:
26.步骤102:接收客户端的业务请求。该客户端可以是手机、电脑或者银行系统客户端。
27.步骤104:判断业务请求是否是第一次请求。服务端收到来自客户端的业务请求后,会对该业务请求进行判断处理。服务端可以是银行金融系统的服务器。
28.步骤106,步骤104的判断结果若是,则执行该业务请求对应的任务;
29.步骤108,步骤104的判断结果若否,则不执行业务请求对应的任务。
30.本发明的请求处理方法优选的实施例是支付,用户购买商品后请求支付,支付成功但是返回结果的时候网络异常,用户再次点击付款按钮,服务端判断是否为第一次付款请求,如果判断为是,则进行扣款,如果判断为否则不进行扣款。
31.对于判断是否是第一次请求的实施方案,下面参考图2至图4举例介绍了三种情况。
32.继续阅读图2,步骤201,客户端会先发送一个请求去获取验证码;
33.步骤202,服务端会生成一个全局唯一的id作为验证码保存在内存数据库中;
34.步骤203,服务端把这个验证码返回给客户端;
35.步骤204,客户端携带步骤203中的验证码向服务端发情业务请求;
36.步骤205,服务端会校验客户端携带的验证码跟内存数据库中存储的验证码是否一致;如果是,则进入步骤206执行业务,并删除内存数据库中的验证码;如果否,则进入步骤207不执行业务并继续步骤208通知客户端。
37.上述实施例介绍了第一种判断是否是第一次请求的实施方式。下面介绍另一种可行的实施方式。继续阅读图3,图3是本发明的请求处理方法的一个实施例的请求处理步骤图,包括:
38.步骤301,建立一张去重表,其中可以对一些关键信息建立唯一索引,例如对用户名和密码建立唯一索引;
39.步骤302,客户端向服务端发送服务请求;
40.步骤303,服务端根据请求包含的用户名和密码,将其插入去重表中;
41.步骤304,判断插入是否成功;如果是,说明之前未处理过相同的请求,是第一次请求,则执行步骤305,执行客户端请求的业务;如果否,则执行步骤306,不执行客户端请求的业务,并继续步骤308,通知客户端。
42.接下来解释说明第三种判断是否是第一次请求的实施方式,继续阅读图4,图4是本发明的请求处理方法的一个实施例的请求处理步骤图,包括:
43.步骤401,客户端向服务端请求服务;
44.步骤402,服务端根据客户端的请求生成代表此次请求的字段;
45.步骤403,服务端将该字段以setnx(set of not existing)的方式存入内存数据库中,并根据业务设置相应的超时时间,如果字段的尝试存储时间超过该超时时间(预设
值),则认为该请求不是第一次请求;
46.步骤404,判断设置是否成功(即字段存储成功);如果是,说明是第一次请求,则执行步骤405,执行客户端请求的业务;如果否,则执行步骤406,不执行客户端请求的业务,并继续步骤408,通知客户端。
47.以上介绍了判断是否是第一次请求的三种实施方式,本领域技术人员应理解,其他的判断方法也在保护范围内,在此不再穷举。
48.进一步参考图5,本发明实施例还提供了一种服务器,包含:
49.接收单元501,接收客户端的业务请求;
50.判断单元502,判断该业务请求是否是第一次请求;
51.执行单元503,在判断单元502的判断结果为是时,执行所述业务请求对应的任务。
52.上述的服务器的实施例中,接收单元501在接收来自述客户端的验证请求后,向客户端分发唯一标识,并保存唯一标识于数据库中;业务请求包含所述唯一标识;判断单元502判断所述业务请求中包含的唯一标识是否保存于所述数据库中,若是,则确定所述业务请求是第一次请求;执行单元503还用于在执行所述任务后,删除所述数据库中与所述业务请求对应的唯一标识。
53.上述的服务器的实施例中,判断单元502还用于建立去重表,去重表包含已处理过请求信息对应的唯一索引;所述判断单元502将所述业务请求对应的信息插入所述去重表中,若插入成功,则确定所述业务请求是第一次请求,若插入所述去重表失败,则向客户端返回已执行消息。
54.上述的服务器的实施例中,判断单元502在接收到所述业务请求后,为所述业务请求分配唯一字段信息,并将所述唯一字段信息以setnx方式存入数据库中,若尝试存储时间未超过预设值,则确定所述业务请求是第一次请求。
55.进一步,本发明还提供了一种计算机设备,该计算机设备包括处理器和存储装置,存储装置可以被配置成存储并执行上述方法实施例的请求处理方法的程序,处理器可以被配置成用于执行存储装置中的程序,该程序包括但不限于执行上述方法实施例的基于接口幂等的请求执行方法的程序。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该请求处理设备可以是包括各种电子设备形成的控制装置设备。
56.进一步,本发明还提供了一种存储介质,该存储介质可以被配置成存储执行上述方法实施例的基于接口幂等的请求执行方法的程序,该程序可以由处理器加载并运行来实现上述基于接口幂等的请求执行方法。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该存储介质可以是包括各种电子设备形成的存储装置设备,可选地,本发明实施例中存储介质是非暂时性的计算机可读存储介质。其中,该存储介质中包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
57.在采用上述技术方案的情况下,本发明设计了一套基于接口幂等的请求处理机制,判断是否是当前请求是否已经被处理过,即判断是否是第一次请求,若是,则进行正常
处理,若不是,则不进行处理。对于判断是否是第一次请求的方法,本发明还提供了多种实施手段,解决了在交易系统的开发过程中由于一笔相同流水号的交易被反复多次调用,导致用户的订单数据出现多笔的问题。
58.本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
59.至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献