订单处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:38836393 阅读:17 留言:0更新日期:2023-09-17 09:53
本发明专利技术实施例提供了一种订单处理方法、装置、电子设备及存储介质。订单处理方法包括:接收到客户端发起的包含请求标识的订单创建请求后,从缓存中查询所述请求标识对应的订单标识;根据所述订单标识的查询结果,从数据库中查询是否存在所述订单创建请求对应的订单;在存在所述订单的情况下,向所述客户端返回所述订单的订单信息;在不存在所述订单的情况下,采用锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中,并将所述订单的订单信息存储至所述数据库中。本发明专利技术实施例中,一方面能够保证接口的幂等性,另一方面能够避免发生重复创建订单的情况。创建订单的情况。创建订单的情况。

【技术实现步骤摘要】
订单处理方法、装置、电子设备及存储介质


[0001]本专利技术涉及互联网
,特别是涉及一种订单处理方法、装置、电子设备及存储介质。

技术介绍

[0002]随着互联网技术的迅速发展,用户越来越倾向于通过网络进行各种电子交易,比如会员办理、购物等等。
[0003]在进行电子交易的过程中,用户在客户端操作完成后,客户端向服务器发起订单创建请求,服务器基于中间表查询是否已创建该订单请求对应的订单,在未创建对应订单的情况下为该笔电子交易创建订单。但是,在实际应用中,经常会出现由于用户重复操作或者网络故障等原因,导致触发多次相同的订单创建请求,然而由于业务增长、数据膨胀等原因导致中间表的性能急剧下降,进而导致中间表无法提供准确的查询结果,因此经常出现服务器重复创建订单的情况。因此,如何避免重复创建订单是目前亟待解决的技术问题。

技术实现思路

[0004]本专利技术实施例的目的在于提供一种订单处理方法、装置、电子设备及存储介质,以解决重复创建订单的问题。具体技术方案如下:
[0005]在本专利技术实施的第一方面,首先提供了一种订单处理方法,所述方法包括:
[0006]接收到客户端发起的包含请求标识的订单创建请求后,从缓存中查询所述请求标识对应的订单标识;
[0007]根据所述订单标识的查询结果,从数据库中查询是否存在所述订单创建请求对应的订单;
[0008]在存在所述订单的情况下,向所述客户端返回所述订单的订单信息;
[0009]在不存在所述订单的情况下,采用锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中,并将所述订单的订单信息存储至所述数据库中。
[0010]可选地,所述数据库包括第一数据库和第二数据库,所述第一数据库存储有最近预设时间段内订单的订单信息,所述第二数据库存储有全量订单的订单信息;所述根据所述订单标识的查询结果,从数据库中查询是否存在所述订单创建请求对应的订单,包括:在存在所述订单标识的情况下,根据所述订单标识,从所述第一数据库中查询是否存在所述订单创建请求对应的订单;在不存在所述订单标识的情况下,根据所述请求标识,从所述第二数据库中查询是否存在所述订单创建请求对应的订单。
[0011]可选地,所述数据库包括第一数据库和第二数据库,所述第一数据库存储有最近预设时间段内订单的订单信息,所述第二数据库存储有全量订单的订单信息;所述将所述订单的订单信息存储至所述数据库中,包括:将所述订单的订单信息存储至所述第一数据库中;在到达所述第二数据库对应的同步时间时,将所述订单的订单信息存储至所述第二
数据库中。
[0012]可选地,所述方法还包括:在将所述订单的订单信息存储至所述数据库失败的情况下,从所述缓存中删除所述请求标识和所述订单的订单标识。
[0013]可选地,所述采用锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中,包括:将所述请求标识作为键key,将所述订单标识作为值value,采用轻量级锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中。
[0014]在本专利技术实施的第二方面,还提供了一种订单处理装置,所述装置包括:
[0015]第一查询模块,用于接收到客户端发起的包含请求标识的订单创建请求后,从缓存中查询所述请求标识对应的订单标识;
[0016]第二查询模块,用于根据所述订单标识的查询结果,从数据库中查询是否存在所述订单创建请求对应的订单;
[0017]发送模块,用于在存在所述订单的情况下,向所述客户端返回所述订单的订单信息;
[0018]创建模块,用于在不存在所述订单的情况下,采用锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中,并将所述订单的订单信息存储至所述数据库中。
[0019]可选地,所述数据库包括第一数据库和第二数据库,所述第一数据库存储有最近预设时间段内订单的订单信息,所述第二数据库存储有全量订单的订单信息;所述第二查询模块包括:第一订单查询单元,用于在存在所述订单标识的情况下,根据所述订单标识,从所述第一数据库中查询是否存在所述订单创建请求对应的订单;第二订单查询单元,用于在不存在所述订单标识的情况下,根据所述请求标识,从所述第二数据库中查询是否存在所述订单创建请求对应的订单。
[0020]可选地,所述数据库包括第一数据库和第二数据库,所述第一数据库存储有最近预设时间段内订单的订单信息,所述第二数据库存储有全量订单的订单信息;所述创建模块包括:第一存储单元,用于将所述订单的订单信息存储至所述第一数据库中;第二存储单元,用于在到达所述第二数据库对应的同步时间时,将所述订单的订单信息存储至所述第二数据库中。
[0021]可选地,所述装置还包括:删除模块,用于在将所述订单的订单信息存储至所述数据库失败的情况下,从所述缓存中删除所述请求标识和所述订单的订单标识。
[0022]可选地,所述创建模块,具体用于将所述请求标识作为键key,将所述订单标识作为值value,采用轻量级锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中。
[0023]在本专利技术实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的订单处理方法。
[0024]在本专利技术实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机实现上述任一所述的订单处
理方法。
[0025]在本专利技术实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机实现上述任一所述的订单处理方法。
[0026]本专利技术实施例提供的订单处理方法、装置、电子设备及存储介质,在接收到客户端发起的包含请求标识的订单创建请求后,从缓存中查询所述请求标识对应的订单标识;根据所述订单标识的查询结果,从数据库中查询是否存在所述订单创建请求对应的订单;在存在所述订单的情况下,向所述客户端返回所述订单的订单信息;在不存在所述订单的情况下,采用锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中,并将所述订单的订单信息存储至所述数据库中。
[0027]由此可知,本专利技术实施例中,一方面,在已创建订单创建请求对应订单的情况下,不会重复创建订单,而是将已创建订单的订单信息返回给客户端,并且能够保证多次订单创建请求接收到的订单信息相同,也即保证接口的幂等性,同时幂等性的实现不需要借助中间表等其他介质,因此不受其他介质性能的影响,适用性更广;在未创建订单创建请求对应订单的情况下,采用锁方式创建订单,从而避免重复创建订本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种订单处理方法,其特征在于,所述方法包括:接收到客户端发起的包含请求标识的订单创建请求后,从缓存中查询所述请求标识对应的订单标识;根据所述订单标识的查询结果,从数据库中查询是否存在所述订单创建请求对应的订单;在存在所述订单的情况下,向所述客户端返回所述订单的订单信息;在不存在所述订单的情况下,采用锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中,并将所述订单的订单信息存储至所述数据库中。2.根据权利要求1所述的方法,其特征在于,所述数据库包括第一数据库和第二数据库,所述第一数据库存储有最近预设时间段内订单的订单信息,所述第二数据库存储有全量订单的订单信息;所述根据所述订单标识的查询结果,从数据库中查询是否存在所述订单创建请求对应的订单,包括:在存在所述订单标识的情况下,根据所述订单标识,从所述第一数据库中查询是否存在所述订单创建请求对应的订单;在不存在所述订单标识的情况下,根据所述请求标识,从所述第二数据库中查询是否存在所述订单创建请求对应的订单。3.根据权利要求1所述的方法,其特征在于,所述数据库包括第一数据库和第二数据库,所述第一数据库存储有最近预设时间段内订单的订单信息,所述第二数据库存储有全量订单的订单信息;所述将所述订单的订单信息存储至所述数据库中,包括:将所述订单的订单信息存储至所述第一数据库中;在到达所述第二数据库对应的同步时间时,将所述订单的订单信息存储至所述第二数据库中。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在将所述订单的订单信息存储至所述数据库失败的情况下,从所述缓存中删除所述请求标识和所述订单的订单标识。5.根据权利要求1所述的方法,其特征在于,所述采用锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中,包括:将所述请求标识作为键key,将所述订单标识作为值value,采用轻量级锁方式创建所述订单创建请求对应的订单,将所述请求标识和所述订单的订单标识对应存储至所述缓存中。6....

【专利技术属性】
技术研发人员:李鑫
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1