CN117829939A - 一种退单请求处理方法、装置、设备及存储介质 - Google Patents
一种退单请求处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117829939A CN117829939A CN202211185438.2A CN202211185438A CN117829939A CN 117829939 A CN117829939 A CN 117829939A CN 202211185438 A CN202211185438 A CN 202211185438A CN 117829939 A CN117829939 A CN 117829939A
- Authority
- CN
- China
- Prior art keywords
- request
- return request
- return
- order
- processing
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 230
- 238000000034 method Methods 0.000 title claims abstract description 204
- 230000008569 process Effects 0.000 claims abstract description 103
- 230000000875 corresponding effect Effects 0.000 claims description 142
- 230000004044 response Effects 0.000 claims description 17
- 230000000977 initiatory effect Effects 0.000 claims description 10
- 230000002596 correlated effect Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 238000012790 confirmation Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- 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/06311—Scheduling, planning or task assignment for a person or group
-
- 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/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0234—Rebates after completed purchase
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开涉及一种退单请求处理方法、装置、设备及存储介质。所述方法包括:获取退单请求进行处理,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中;在所述退单请求处理超时未完成的情况下,循环执行以下步骤,直到满足预设循环停止条件:基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中。该方法可以通过针对超时未完成的退单请求,循环处理该退单请求,从而可以提高退单请求处理的稳定性。
Description
技术领域
本公开涉及计算机应用技术领域,尤其涉及一种退单请求处理方法、装置、设备及存储介质。
背景技术
目前,在许多业务中,存在针对用户退单的处理过程。例如,针对用户发起的退单请求,一方面需要根据用户实际使用的业务情况确定是否退单,另一方面也需要由管理资源的***进行资源返还。例如,返还用户下单时支付的金额、积分、优惠券等。
在退单的处理过程中,由于存在较多的步骤,如果其中任一步骤出现问题,都会导致整个退单处理过程意外终止,退单请求的处理稳定性较差,用户体验较差。
例如,管理积分的***意外宕机,无法退还积分,在退单请求超时后就会自动清理该退单请求,导致退单处理过程终止。
发明内容
为了解决上述问题,本公开提供了一种退单请求处理方法、装置、设备及存储介质。技术方案如下所示。
一种退单请求处理方法,包括:
获取退单请求进行处理,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中;
在所述退单请求处理超时未完成的情况下,循环执行以下步骤,直到满足预设循环停止条件:
基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中。
可选地,所述基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求,包括:
在第一预设时长之后,基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求。
可选地,所述基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求,包括:
根据循环次数与等待时长之间预设的对应关系,确定当前循环次数对应的等待时长;循环次数与等待时长正相关;
在等待所确定的等待时长之后,基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求。
可选地,所述获取退单请求进行处理,包括:
获取退单请求,确定所述退单请求对应的目标业务***;
获取所述目标业务***针对是否允许所述退单请求对应的订单退单的判断结果;
在确定不允许退单的情况下,确定退单结果,并响应于所述退单请求返回退单结果;
在确定允许退单的情况下,获取资源退还结果,并根据所获取的资源退还结果确定退单结果,响应于所述退单请求返回退单结果;
在成功返回退单结果的情况下,确定所述退单请求处理完成。
可选地,所述获取资源退还结果,包括:
针对所述退单请求所请求退还的资源,发起资源退还申请,并获取资源退还结果。
可选地,所述处理过程中产生的中间结果包括以下至少一项:
所述退单请求对应的目标业务***信息;
是否允许所述退单请求对应的订单退单的判断结果;
资源退还结果;
退单结果。
可选地,获取退单请求之后,所述方法还包括:存储所述退单请求。
可选地,所述预设循环停止条件包括以下至少一项:
所述退单请求处理完成;
循环次数大于预设次数;
循环耗时时长大于预设循环时长。
一种退单请求处理装置,包括:
处理单元,用于获取退单请求进行处理,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中;
循环单元,用于在所述退单请求处理超时未完成的情况下,循环执行以下步骤,直到满足预设循环停止条件:
基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中。
可选地,所述循环单元用于:
在第一预设时长之后,基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求。
可选地,所述循环单元用于:
根据循环次数与等待时长之间预设的对应关系,确定当前循环次数对应的等待时长;循环次数与等待时长正相关;
在等待所确定的等待时长之后,基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求。
可选地,所述处理单元用于:
获取退单请求,确定所述退单请求对应的目标业务***;
获取所述目标业务***针对是否允许所述退单请求对应的订单退单的判断结果;
在确定不允许退单的情况下,确定退单结果,并响应于所述退单请求返回退单结果;
在确定允许退单的情况下,获取资源退还结果,并根据所获取的资源退还结果确定退单结果,响应于所述退单请求返回退单结果;
在成功返回退单结果的情况下,确定所述退单请求处理完成。
可选地,所述处理单元用于:
针对所述退单请求所请求退还的资源,发起资源退还申请,并获取资源退还结果。
可选地,所述处理过程中产生的中间结果包括以下至少一项:所述退单请求对应的目标业务***信息;是否允许所述退单请求对应的订单退单的判断结果;资源退还结果;退单结果。
可选地,所述处理单元还用于:在获取退单请求之后,存储所述退单请求。
可选地,所述预设循环停止条件包括以下至少一项:
所述退单请求处理完成;
循环次数大于预设次数;
循环耗时时长大于预设循环时长。
上述技术方案中,可以通过针对超时未完成的退单请求,循环处理该退单请求,从而可以提高退单请求处理的稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本公开提供的一种退单请求处理方法的流程示意图;
图2是本公开提供的另一种退单请求处理方法的流程示意图;
图3是本公开提供的另一种退单请求处理方法的流程示意图;
图4是本公开提供的另一种退单请求处理方法的流程示意图;
图5是本公开提供的另一种退单请求处理方法的流程示意图;
图6是本公开提供的一种退单请求处理的原理示意图;
图7是本公开提供的一种退单请求处理装置的结构示意图;
图8是本公开提供的另一种退单请求处理装置的结构示意图;
图9是本公开提供的另一种退单请求处理装置的结构示意图;
图10是用于配置本公开中方法实施例的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本公开中的技术方案,下面将结合本公开中的附图,对本公开中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于公开的范围。
目前,在许多业务中,存在针对用户退单的处理过程。例如,针对用户发起的退单请求,一方面需要根据用户实际使用的业务情况确定是否退单,另一方面也需要由管理资源的***进行资源返还。例如,返还用户下单时支付的金额、积分、优惠券等。
在退单的处理过程中,由于存在较多的步骤,如果其中任一步骤出现问题,都会导致整个退单处理过程意外终止,退单请求的处理稳定性较差,用户体验较差。
例如,管理积分的***意外宕机,无法退还积分,在退单请求超时后就会自动清理该退单请求,导致退单处理过程终止。
为了解决上述技术问题,本公开提供了一种退单请求处理方法。
在该方法中,针对退单请求,如果该退单请求的处理过程超时并且没有完成,并不会清理该退单请求,而是可以在之后循环继续处理该退单请求,直到满足预设循环停止条件。预设循环停止条件可以包括该退单请求处理完成。
该方法可以提高退单请求处理的稳定性,使得退单请求在超时后可以重新处理,从而可以提高退单请求能够处理完成的可能性,降低退单请求因为超时而终止退单流程的可能性。
此外,由于退单请求的处理过程可以存在多个步骤,在循环处理的时候,可以继承之前退单请求的处理过程中已完成的步骤继续处理,无需从头开始处理退单请求,从而可以节约计算资源,提高退单请求的处理效率。
需要说明的是,退单请求处理超时,通常是因为部分***超时响应或者无响应,因此,可以等待***响应成功后,再继续处理退单请求。
如图1所示,为本公开提供的一种退单请求处理方法的流程示意图。
本方法流程并不限定执行主体。可选地,可以是服务端,也可以是业务侧的退单中台,可以对接于业务***和资源管理***,退单中台可以用于针对退单请求,调用业务***的接口确定是否允许退单,再调用资源管理***的接口进行资源退还。
本方法流程可以包括以下步骤。
S101:获取退单请求进行处理,并将处理过程中产生的中间结果添加到该退单请求对应的中间结果集合中。
S102:在该退单请求处理超时未完成的情况下,循环执行以下步骤,直到满足预设循环停止条件:基于该退单请求当前对应的中间结果集合,继续处理该退单请求,并将处理过程中产生的中间结果添加到该退单请求对应的中间结果集合中。
在本方法流程中,可以通过针对超时未完成的退单请求,利用循环流程,基于处理过程中产生的中间结果,继续处理该退单请求,直到满足预设循环停止条件,从而可以提高退单请求的稳定性。
并且,由于能够保存并继承退单请求之前的处理中间结果,因此,在继续处理的过程中,可以减少重复流程,节约计算资源,提高退单的效率。
下面针对各个步骤进行详细的解释。
S101:获取退单请求进行处理,并将处理过程中产生的中间结果添加到该退单请求对应的中间结果集合中。
关于退单请求,本方法流程并不限定退单请求的来源或形式。
可选地,退单请求可以是由用户客户端发起的,也可以是由业务***发起的。例如,用户直接申请退单,或者业务方申请退单。
可选地,退单请求的形式可以包括所需要退单的订单号,具体可以包括一个或多个订单号。
可选地,退单请求的形式可以包括所需要退还的资源,具体可以包括所需要退还的资源种类和数量。例如,退单请求中包括但不限于需要退还的金额、积分和优惠劵。
在一种可选的实施例中,为了提高退单请求的稳定性,在获取退单请求之后,可以存储该退单请求。
本实施例并不限定存储该退单请求的方法和位置。
可选地,具体可以是将该退单请求写入数据库中,通过数据库长久地保存该退单请求。
当然,可选地,也可以将该退单请求存储到本地缓存中,方便进行访问,也可以将该退单请求存储到其他设备中。
在本实施例中,即使该退单请求在处理过程中被清理或者丢失,也可以通过存储的该退单请求进行恢复,继续进行处理。
针对退单请求的处理和存储两个步骤,本实施例并不限定执行顺序。可选地,可以先存储退单请求,再处理退单请求;也可以并行地存储和处理退单请求。
可选地,也可以只存储所获取退单请求中的需要退单的订单信息和/或申请退还资源的信息,具体可以存储退单请求中需要退单的订单号,或者申请退还的资源种类以及资源数量。
在一种可选的实施例中,由于后续步骤中可能需要针对同一退单请求循环多次进行处理,为了提高处理效率,减少冗余步骤,可以进一步存储退单请求处理过程中产生的中间结果。
通过存储中间结果,可以提高中间结果的稳定性,减少数据丢失的可能性。
本实施例并不限定存储中间结果的方法和位置。
可选地,具体可以是将退单请求处理过程中产生的中间结果写入数据库中。当然,可选地,也可以将中间结果存储到其他设备或者本地缓存中。
可选地,通过存储中间结果,可以方便在后续循环针对同一退单请求进行处理时,可以基于中间结果继续进行处理,减少重复执行的步骤,提高处理效率。
在一种可选的实施例中,为了方便确定同一退单请求的中间结果,可以将同一退单请求处理过程中产生的中间结果存储在一起,具体可以添加到同一退单请求对应的中间结果集合中。
可选地,可以预先针对所获取的退单请求,创建一个对应的中间结果集合,所创建的中间结果集合可以存储在本地。
本实施例并不限定退单请求与中间结果集合之间对应关系的形式。具体可以是退单请求本身与中间结果集合之间存在对应关系,也可以是退单请求的标识信息与中间结果集合之间存在对应关系。
可选地,可以利用退单请求的标识信息,将该退单请求处理过程中产生的中间结果与该退单请求的标识信息构建并存储对应关系。
因此,可选地,可以预先构建并存储退单请求的标识信息与中间结果集合之间的对应关系,将该退单请求在处理过程中产生的中间结果,添加到该退单请求标识信息对应的中间结果集合中。
之后,在循环步骤中,可以基于所存储的该退单请求标识信息当前对应的中间结果集合,继续处理该退单请求。
本实施例并不限定退单请求的标识信息。具体可以是退单请求中需要申请退单的订单号。
在一种具体的示例中,可以将退单请求中需要申请退单的订单号存储到数据库中,并将该退单请求处理过程中产生的中间结果,作为该订单号对应的数据进行存储,从而方便之后根据退单请求的订单号,查找当前的中间结果。
可选地,由于退单请求本身也可以进行存储,具体可以存储到数据库中。因此,相对应地,也可以针对退单请求,构建一个对应的中间结果集合,将该退单请求处理过程中产生的中间结果添加到该退单请求对应的中间结果集合中。
本方法流程并不限定退单请求的具体处理过程,也不限定具体的中间结果。
可选地,针对退单请求,在具体处理的过程中,可以包括以下步骤:确定业务***是否同意退单,确定所需要退还的资源,确定资源能否退还,确定资源是否退还成功,确定退单结果是失败还是成功,确定退还资源中成功退还的资源和退还失败的资源,确定退单失败原因等等。
可选地,退单请求的处理过程中产生的中间结果,可以包括以下至少一项:业务***针对是否同意退单的判断结果,资源退还的结果,退单结果等等。
在一种可选的实施例中,获取退单请求进行处理,可以包括:获取退单请求,确定退单请求对应的目标业务***;获取目标业务***针对是否允许退单请求对应的订单退单的判断结果;在确定不允许退单的情况下,确定退单结果,并响应于退单请求返回退单结果;在确定允许退单的情况下,获取资源退还结果,并根据所获取的资源退还结果确定退单结果,响应于退单请求返回退单结果;在成功返回退单结果的情况下,确定退单请求处理完成。
本实施例并不限定获取资源退还结果的方式。可以直接发起资源退还申请,也可以等待用户发起资源退还申请。
可选地,获取资源退还结果,可以包括:针对退单请求所请求退还的资源,发起资源退还申请,并获取资源退还结果。
针对目标业务***,可选地,目标业务***具体可以包括,退单请求中所申请退单的订单所属的业务***。
例如,对于网络服务平台,其中可以包括视频业务、阅读业务、网购业务等多项业务。其中,用户可能需要针对视频业务中的会员服务订单进行退单,从而可以确定出会员服务订单所属的视频业务***,由视频业务***判断是否允许退单。
例如,对于连锁餐厅,可以包括多家餐厅。用户可能针对其中一家餐厅下的订单进行退单,从而可以确定出该订单所属的餐厅,由该餐厅判断是否允许退单。
本实施例并不限定目标业务***判断是否允许退单请求对应的订单退单的方法。
可选地,退单请求对应的订单,可以包括退单请求所请求退单的订单。
可选地,通过确定目标业务***,可以通过目标业务***帮助确定是否允许退单请求对应的订单退单。具体可以由目标业务***自身制定相应的规则。
例如,在用户已使用服务的情况下,不允许退单;在用户信誉较低的情况下,不允许退单等规则。
本实施例并不限定获取目标业务***针对是否允许退单请求对应的订单退单的判断结果的方法。
可选地,可以是直接向目标业务***发起请求,由目标业务***进行判断,也可以是调用目标业务***的接口进行判断。
可选地,可以由目标业务***针对该退单请求对应的订单判断是否允许退单。具体可以是调用目标业务***的退单确认接口,针对该退单请求对应的订单判断是否允许退单;也可以是向目标业务***发送退单确认请求,由目标业务***针对接收到的退单确认请求,针对该退单请求对应的订单判断是否允许退单,并返回判断结果。
可选地,在确定不允许退单的情况下,可以确定出用于表征退单失败的退单结果。
可选地,退单结果中,可以添加退单失败的原因,具体可以是由目标业务***确定退单失败的原因,也可以是直接添加表征目标业务***不允许退单的原因。当然,可选地,也可以随着退单结果的返回,将退单失败的原因一同返回。
可选地,在确定允许退单的情况下,可以申请退还资源。由于退单请求所需要退还的资源可以包括多个种类,从而可以向多个不同***申请退还资源。
例如,退单请求所需要退还的资源可以包括:金额、积分、优惠劵等。
本实施例并不限定具体发起资源退还申请的方式。
可选地,可以向管理资源的***发起资源退还请求,也可以发起资源退还的流程。
可选地,在确定允许退单的情况下,可以根据退单请求所需要退还的资源,发起一个或多个资源退还请求;不同的资源退还请求可以对应于退单请求中所需要退还的不同资源种类。
例如,可以发起针对金额的退还请求、针对积分的退还请求以及针对优惠券的退还请求。
可选地,发起资源退还请求,具体可以是向管理资源的***发起资源退还请求。
例如,可以向管理金额的***发起针对金额的退还请求,向管理积分的***发起针对积分的退还请求,向管理优惠券的***发起针对优惠券的退还请求。
本实施例并不限定资源退还请求的形式,只要能够申请退还相应的资源即可。
当然,本方法流程并不限定申请资源退还的具体方式。上述发起资源退还请求的方式仅仅用于示例性说明。
在一种可选的实施例中,可以获取资源退还申请的结果,并根据所获取的资源退还结果确定退单结果,响应于该退单请求返回退单结果。
本实施例并不限定资源退还申请的结果形式。
可选地,由于退单请求所申请退还的资源种类可能包括一种或多种,因此,针对申请退还的一种资源,可以存在退还成功或退还失败的结果;而针对申请退还的多种资源,可以存在全部退还成功、全部退还失败或者部分退还成功的结果。
可选地,资源退还申请具体可以包括一个或多个资源退还请求,不同资源退还请求所申请退还的资源种类不同。
因此,相对应地,可以根据全部资源退还请求的结果,确定退单结果。
可选地,在获取全部资源退还请求的结果的情况下,可以确定退单结果,并响应于该退单请求返回退单结果。
其中,可选地,对于资源退还请求,可能退还成功,也可能退还失败。因此,所获取的资源退还请求的结果,可以包括表征资源退还成功的结果,也可以包括表征资源退还失败的结果。
可选地,针对全部资源退还请求的结果,可能存在以下三种情况。全部退还成功,全部退还失败以及部分退还成功。相对应地,可以对应于不同的三种退单结果。
可选地,可以根据所获取的全部资源退还请求的结果,确定退单结果。
其中,在确定所获取的全部资源退还请求都退还成功的情况下,可以确定表征退单成功的退单结果。
在确定所获取的全部资源退还请求都退还失败的情况下,可以确定表征退单失败的退单结果。
在确定所获取的全部资源退还请求部分退还成功,部分退还失败的情况下,可以确定表征退单部分成功的退单结果。
当然,本实施例并不限定根据所获取的全部资源退还请求的结果,确定退单结果的方法。上述实施例仅仅用于示例性说明。
可选地,在确定所获取的全部资源退还请求都退还成功的情况下,可以确定表征退单成功的退单结果。在其他情况下,可以确定表征退单失败的退单结果。
具体地,可以在确定所获取的全部资源退还请求部分退还成功,部分退还失败的情况下,可以确定表征退单失败的退单结果。具体可以是认为,退单请求所申请退还的资源没有全部退还成功,看作是退单失败。
可选地,在确定退单结果之后,可以响应于该退单请求返回退单结果。其中,在退单结果表征退单失败,或者退单部分成功的情况下,可以将退单失败的原因一同返回。
在一种可选的实施例中,具体返回退单结果,可以是响应于退单请求进行返回,具体可以是将退单结果返回到发起退单请求的***。例如,客户端或者业务***。
可选地,返回退单结果,也可以包括将退单结果通知到相关的***,具体可以包括目标业务***和客户端。从而使得客户端可以获取到退单结果,而目标业务***也可以获取到退单结果。
而退单结果的返回,由于网络波动或者传输介质的问题,存在返回失败的可能。
因此,可选地,可以在成功返回退单结果的情况下,确定该退单请求处理完成。
在一种可选的实施例中,对应于上述退单请求的处理过程,本实施例并不限定具体的中间结果的形式,也不限定产生中间结果的方式。
可选地,可以将每个步骤的执行成功与否作为中间结果。可选地,也可以将每个步骤执行成功的情况作为中间结果。
例如,中间结果可以包括:成功确定目标业务***,成功获取判断是否允许退单的判断结果,成功发起资源退还申请,成功返回退单结果等。
这些步骤执行成功的情况,可以作为中间结果,方便后续基于这些中间结果,确定执行成功的步骤,从而方便继续执行后续的处理。
可选地,也可以利用这些步骤执行成功所得到的结果作为中间结果。
可选地,退单请求处理过程中产生的中间结果包括以下至少一项:退单请求对应的目标业务***信息;是否允许退单请求对应的订单退单的判断结果;资源退还结果;退单结果。
其中,如果退单请求对应的中间结果集合中包括所确定的该退单请求对应的目标业务***信息,也就可以表征当前退单请求处理过程中,已经成功确定目标业务***。
可选地,目标业务***信息,具体可以是目标业务***的标识信息,方便进行通信或接口调用。
相对应地,如果退单请求对应的中间结果集合中包括判断是否允许退单的判断结果,可以表征当前退单请求处理过程中,已经成功获取该判断结果。
如果退单请求对应的中间结果集合中包括资源退还申请结果,可以表征当前退单请求处理过程中,已经成功获取资源退还申请结果。
如果退单请求对应的中间结果集合中包括退单结果,可以表征当前退单请求处理过程中,已经成功确定退单结果。
在本实施例中,可以利用中间结果集合,存储退单请求处理过程中产生的中间结果,在后续循环步骤中可以持续利用,提高处理效率。并且,可以通过存储中间结果集合,提高中间结果的稳定性,降低中间结果丢失的可能性,具体可以将中间结果集合存储到数据库中。
为了便于理解,本公开还提供了另一种退单请求的处理过程。
在一种可选的实施例中,获取退单请求进行处理,可以包括:获取退单请求,确定该退单请求对应的目标业务***;调用目标业务***的退单确认接口,针对该退单请求对应的订单判断是否允许退单;在确定不允许退单的情况下,确定退单结果,并响应于该退单请求返回退单结果;在确定允许退单的情况下,根据该退单请求所需要退还的资源,发起一个或多个资源退还请求;获取全部资源退还请求的结果,并根据所获取的全部资源退还请求的结果确定退单结果,响应于该退单请求返回退单结果;在成功返回退单结果的情况下,确定该退单请求处理完成。
可选地,处理过程中产生的中间结果包括以下至少一项:所确定的该退单请求对应的目标业务***信息;和判断是否允许该退单请求对应订单退单的判断结果;和各个资源退还请求的结果;和所确定的退单结果。
需要说明的是,由于本实施例中可以发起多个资源退还请求,本实施例并不限定多个资源退还请求之间的发起顺序。可选地,可以是并行发起多个资源退还请求,也可以是串行发起多个资源退还请求。
而针对多个资源退还请求,可能存在部分资源退还请求迟迟没有获取到响应结果,因此,对于获取到结果的资源退还请求,在后续的循环步骤中可以不再发起,而是发起未获取到结果的资源退还请求。
具体可以通过中间结果中当前包含的资源退还请求的结果进行区分确定。对于未获取到结果的资源退还请求,在循环步骤中继续发起相应的资源退还请求。
例如,针对退单请求可以发起3个资源退还请求,分别是针对金额的退还请求、针对积分的退还请求和针对优惠券的退还请求。根据该退单请求当前对应的中间结果集合,其中可以包括针对金额的退还请求结果,因此,可以在循环步骤中,继续发起针对积分的退还请求和针对优惠券的退还请求,而无需发起针对金额的退还请求。
本实施例的其他解释可以参见上文。
为了便于理解,如图2所示,为本公开提供的另一种退单请求处理方法的流程示意图。
其中,可以包括以下步骤。
S201:获取退单请求,确定该退单请求对应的目标业务***。
S202:调用目标业务***的退单确认接口,针对该退单请求对应的订单判断是否允许退单;在确定不允许退单的情况下,执行步骤S203;在确定允许退单的情况下,执行步骤S204。
S203:确定用于表征退单失败的退单结果,并响应于该退单请求返回退单结果,执行步骤S208。
S204:根据该退单请求所需要退还的资源,发起一个或多个资源退还请求,并获取全部资源退还请求的结果。
S205:判断全部资源退还请求的结果是否全部表征退还成功。如果全部表征退还成功,则执行步骤S206;如果不是全部表征退还成功,则执行步骤S207。
S206:确定用于表征退单成功的退单结果,并响应于该退单请求返回退单结果,执行步骤S208。
S207:确定用于表征退单失败的退单结果,并响应于该退单请求返回退单结果,执行步骤S208。
S208:在成功返回退单结果的情况下,确定该退单请求处理完成。
下面针对步骤S102进行解释。
S102:在该退单请求处理超时未完成的情况下,循环执行以下步骤,直到满足预设循环停止条件:基于该退单请求当前对应的中间结果集合,继续处理该退单请求,并将处理过程中产生的中间结果添加到该退单请求对应的中间结果集合中。
本方法流程并不限定具体的预设循环停止条件。可选地,预设循环停止条件包括以下至少一项:退单请求处理完成;循环次数大于预设次数;循环耗时时长大于预设循环时长。
在一种可选的实施例中,如果退单请求处理完成,则该方法流程可以结束。当然,可选地,也可以将处理完成的退单请求存储起来。
可选地,在满足预设循环停止条件,结束循环之后,针对未完成的退单请求,可以进行存储,也可以生成表征退单流程未完成或者退单失败的退单结果,响应于退单请求返回所生成的退单结果。
此外,在一种可选的实施例中,基于该退单请求当前对应的中间结果集合,继续处理该退单请求,可以是基于该退单请求当前对应的中间结果集合,继续按照上述处理流程(例如S201-S208的处理流程),处理该退单请求。
具体可以利用中间结果集合中已经确定的中间结果,执行处理流程中后续的相应步骤。
例如,可以利用确定的目标业务***,请求获取目标业务***针对是否允许退单请求对应的订单退单的判断结果。
也可以利用确定的判断结果,例如,不允许退单,确定表征退单失败的退单结果,并响应于退单请求返回退单结果。
而如果退单请求处理未完成,则可能是由于某些故障导致退单请求的处理过程存在停滞,从而出现超时的问题。
因此,可以预先设置预设超时时长,在退单请求的处理过程中,如果处理的时长超出预设超时时长,预设超时时长例如100s,并且退单请求没有处理完成,则可以认为该退单请求的处理过程出现了处理超时未完成的情况。
可选地,也可以预先设置预设停滞时长,在退单请求的处理过程中,如果出现了处理停滞,并且处理停滞的时长超出了预设停滞时长,退单请求没有处理完成,则可以认为该退单请求的处理过程出现了处理超时未完成的情况。
当然,本实施例并不限定退单请求处理超时未完成的具体情况,上述实施例用于示例性说明。
可选地,对于退单请求处理超时未完成,可能是由于以下原因。
可选地,对应于上述包括资源退还申请的退单请求处理过程,退单请求处理超时未完成的原因包括以下至少一项:没有获取到目标业务***判断是否允许退单的判断结果;没有成功发起资源退还申请;和没有获取到资源退还申请的结果;和没有成功返回退单结果。
可选地,相对于上述包括一个或多个资源退还请求的退单请求处理过程,退单请求处理超时未完成的原因包括以下至少一项:没有成功调用目标业务***的退单确认接口;和没有确定出是否允许退单的结果;没有成功发起资源退还请求;和没有获取到全部资源退还请求的结果;和没有成功返回退单结果。
具体可能是由于与其他***通信失败,或者其他***出现故障,或者网络波动等问题,导致退单请求的处理过程中出现停滞。
例如,目标业务***出现宕机的问题,导致无法调用目标业务***的接口,也无法与目标业务***通信,从而无法获取到目标业务***判断是否允许退单的判断结果,也无法调用目标业务***的退单确认接口。
例如,管理金额的***出现响应故障,对于外界的请求无法进行响应,也就无法获取到金额退还请求的结果。
在一种可选的实施例中,可以基于该退单请求当前对应的中间结果集合,继续处理该退单请求。具体可以是基于该退单请求当前对应的中间结果集合,针对该退单请求继续执行处理过程中未完成的步骤。
例如,基于中间结果集合中的所确定的该退单请求对应的目标业务***信息,可以进一步获取目标业务***针对该退单请求所请求退单的订单,判断是否允许退单的判断结果。
本实施例可以提高退单请求的处理效率,减少冗余步骤的重复执行。
为了便于理解,如图3所示,为本公开提供另一种退单请求处理方法的流程示意图。
本方法流程可以包括以下步骤。
S301:获取退单请求进行处理,并将处理过程中产生的中间结果添加到该退单请求对应的中间结果集合中。
S302:在该退单请求处理超时未完成的情况下,判断是否满足预设循环停止条件。如果满足预设循环停止条件,则停止循环,结束本方法流程;如果不满足预设循环停止条件,则执行S303。
S303:基于该退单请求当前对应的中间结果集合,继续处理该退单请求,并将处理过程中产生的中间结果添加到该退单请求对应的中间结果集合中。执行S302。
本方法流程的解释可以参见上述方法流程S101-S102的解释。
在一种可选的实施例中,在退单请求处理超时未完成的情况下,可以循环多次继续处理同一退单请求。
而由于退单请求处理超时未完成,通常是由于***故障或者网络波动,往往需要等待维修才能继续进行,其中存在一段维修或等待的时间间隔。
因此,可选地,可以在退单请求处理超时未完成的情况下,即时循环多次继续处理同一退单请求。不同循环之间不存在时间间隔。
可选地,也可以在退单请求处理超时未完成的情况下,循环多次继续处理同一退单请求,每次循环中,可以等待一段时间,从而可以节约计算资源和通信资源。
因此,可选地,基于该退单请求当前对应的中间结果集合,继续处理该退单请求,可以包括:在第一预设时长之后,基于该退单请求当前对应的中间结果集合,继续处理该退单请求。
本实施例并不限定第一预设时长,具体可以是3s。
此外,对于一些影响较小的故障,往往很快就能够恢复,继续退单请求的处理过程,但是对于一些影响较大难以维护的故障,通常需要较多的时间进行恢复。
因此,可以根据循环的次数多少,决定循环中等待的时长。可选地,循环次数可以与等待时长正相关,从而可以针对需要较多时间恢复的故障,能够等待更长的时间再继续处理,节约计算资源和通信资源。
本实施例并不限定具体的循环次数与等待时长之间的对应关系。
可选地,可以预先设置循环次数与等待时长之间的对应关系。相对应地,基于该退单请求当前对应的中间结果集合,继续处理该退单请求,可以包括:根据循环次数与等待时长之间预设的对应关系,确定当前循环次数对应的等待时长;循环次数与等待时长正相关;在等待所确定的等待时长之后,基于该退单请求当前对应的中间结果集合,继续处理该退单请求。
其中,循环次数可以与等待时长正相关,可以使得循环次数越多,等待的时长越长,从而可以节约计算资源和通信资源。
可选地,基于该退单请求当前对应的中间结果集合,继续处理该退单请求,包括:在当前循环次数小于预设次数的情况下,在第一预设时长之后,基于该退单请求当前对应的中间结果集合,继续处理该退单请求;在当前循环次数大于或等于预设次数的情况下,在第二预设时长之后,基于该退单请求当前对应的中间结果集合,继续处理该退单请求;其中,第二预设时长大于第一预设时长。
本实施例并不限定第二预设时长,具体可以是100s。
需要说明的是,本方法流程并不限定实现循环步骤中等待一定时长的方法。
可选地,可以直接通过暂停实现等待一定时长。
可选地,也可以通过延迟队列的机制实现等待时长。具体可以是将退单请求添加到正常队列中进行处理,在退单请求处理超时未完成的情况下,可以进一步将该退单请求添加到延迟队列,从而可以在一定时长后,重新将该退单请求添加到正常队列中进行处理。
当然,针对循环次数超出一定次数的退单请求,可以进一步添加到死信队列中,进而额外的处理,具体可以是在一定时长后,重新将该退单请求添加到正常队列中进行处理,也可以是与正常队列区分,在一定时长后继续处理。
当然,在延迟队列中等待的时长,可以小于在死信队列中等待的时长。
本公开还提供了另一种退单请求处理方法的方法实施例,其中使用了队列进行退单请求的处理,
如图4所示,为本公开提供的另一种退单请求处理方法的流程示意图。
S401:获取退单请求,并将所获取的退单请求添加到待处理队列中。
S402:从待处理队列中获取退单请求,执行以下步骤:在针对待处理队列中获取的退单请求,确定对应的中间结果集合为空的情况下,处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求添加到延迟队列中;在所针对的退单请求对应的中间结果集合不为空的情况下,基于所针对的退单请求当前对应的中间结果集合,继续处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求添加到延迟队列中。
S403:针对延迟队列中的退单请求,在添加到延迟队列的第三预设时长之后,将延迟队列中所针对的退单请求重新添加到待处理队列中。
在本方法流程中,并不限定步骤S401-S403之间的执行顺序,可以并行执行。具体可以实现流式处理,可以是由各个程序模块或者进程或者线程,分别执行S401-S403。
可选地,在本方法流程中任一步骤中,如果满足预设循环停止条件,则可以直接结束该退单请求的处理过程。预设循环停止条件可以包括以下至少一项:退单请求处理完成;循环次数大于预设次数;循环耗时时长大于预设循环时长。
本方法流程并不限定第三预设时长。
本方法流程的解释可以参见上述方法流程S101-S102的解释。
如图5所示,为本公开提供的另一种退单请求处理方法的流程示意图。
S501:获取退单请求,并将所获取的退单请求添加到待处理队列中。
S502:从待处理队列中获取退单请求,执行以下步骤:在针对待处理队列中获取的退单请求,确定对应的中间结果集合为空的情况下,处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求添加到延迟队列中;在所针对的退单请求对应的中间结果集合不为空的情况下,基于所针对的退单请求当前对应的中间结果集合,继续处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成,并且添加到延迟队列的次数小于预设次数的情况下,将所针对的退单请求添加到延迟队列中;在所针对的退单请求处理超时未完成,并且添加到延迟队列的次数大于或等于预设次数的情况下,将所针对的退单请求添加到死信队列中。
S503:针对延迟队列中的退单请求,在添加到延迟队列的第三预设时长之后,将延迟队列中所针对的退单请求重新添加到待处理队列中。
本方法流程并不限定针对死信队列中的退单请求的处理方式。可选地,可以直接删除或存储,停止本方法流程,也可以继续循环处理。
可选地,针对死信队列中的退单请求,在添加到死信队列的第四预设时长之后,基于死信队列中所针对的退单请求当前对应的中间结果集合,继续处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求重新添加到死信队列中。
在本方法流程中,并不限定步骤S501-S503之间的执行顺序,可以并行执行。具体可以实现流式处理,可以是由各个程序模块或者进程或者线程,分别执行S501-S503。
可选地,第三预设时长小于第四预设时长。
可选地,在本方法流程中任一步骤中,如果满足预设循环停止条件,则可以直接结束该退单请求的处理过程。预设循环停止条件可以包括以下至少一项:退单请求处理完成;循环次数大于预设次数;循环耗时时长大于预设循环时长。
本方法流程的解释可以参见上述方法流程S101-S102的解释。
为了便于理解,如图6所示,为本公开提供的一种退单请求处理方法的原理示意图。
其中可以包括正常队列、延迟队列和死信队列。
可以将获取的退单请求添加到正常队列中。
针对正常队列中的退单请求可以进行消费和处理,如果处理完成则直接结束,如果处理超时未完成,则进一步判断该退单请求添加到延迟队列的次数是否超出预设次数。
如果该退单请求添加到延迟队列的次数没有超出预设次数,则可以将该退单请求添加到延迟队列中。
如果该退单请求添加到延迟队列的次数超出预设次数,则可以将该退单请求添加到死信队列中。
针对延迟队列中的退单请求,可以在添加到延迟队列的第三预设时长之后,进一步添加到正常队列中进行后续的消费和处理等步骤。
针对死信队列中的退单请求,可以在添加到死信队列的第四预设时长之后,继续进行后续的消费和处理,如果处理完成则直接结束,如果处理超时未完成,则进一步将该退单请求添加到死信队列中。
对应于上述方法实施例,本公开还提供了装置实施例。
如图7所示,为本公开提供的一种退单请求处理装置的结构示意图。该装置可以包括以下单元。
处理单元701,用于获取退单请求进行处理,并将处理过程中产生的中间结果添加到该退单请求对应的中间结果集合中。
循环单元702,用于在该退单请求处理超时未完成的情况下,循环执行以下步骤,直到满足预设循环停止条件:基于该退单请求当前对应的中间结果集合,继续处理该退单请求,并将处理过程中产生的中间结果添加到该退单请求对应的中间结果集合中。
可选地,循环单元702用于:在第一预设时长之后,基于该退单请求当前对应的中间结果集合,继续处理该退单请求。
可选地,循环单元702用于:根据循环次数与等待时长之间预设的对应关系,确定当前循环次数对应的等待时长;循环次数与等待时长正相关;在等待所确定的等待时长之后,基于该退单请求当前对应的中间结果集合,继续处理该退单请求。
可选地,处理单元701用于:
获取退单请求,确定退单请求对应的目标业务***;
获取目标业务***针对是否允许退单请求对应的订单退单的判断结果;
在确定不允许退单的情况下,确定退单结果,并响应于退单请求返回退单结果;
在确定允许退单的情况下,获取资源退还结果,并根据所获取的资源退还结果确定退单结果,响应于退单请求返回退单结果;
在成功返回退单结果的情况下,确定退单请求处理完成。
可选地,处理单元701用于:
针对退单请求所请求退还的资源,发起资源退还申请,并获取资源退还结果。
可选地,处理过程中产生的中间结果包括以下至少一项:退单请求对应的目标业务***信息;是否允许退单请求对应的订单退单的判断结果;资源退还结果;退单结果。
可选地,处理单元701还用于:在获取退单请求之后,存储退单请求。
可选地,预设循环停止条件包括以下至少一项:
退单请求处理完成;
循环次数大于预设次数;
循环耗时时长大于预设循环时长。
如图8所示,为本公开提供的另一种退单请求处理装置的结构示意图。该装置可以包括以下单元。
第一获取单元801,用于获取退单请求,并将所获取的退单请求添加到待处理队列中。
第一处理单元802,用于从待处理队列中获取退单请求,执行以下步骤:在针对待处理队列中获取的退单请求,确定对应的中间结果集合为空的情况下,处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求添加到延迟队列中;在所针对的退单请求对应的中间结果集合不为空的情况下,基于所针对的退单请求当前对应的中间结果集合,继续处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求添加到延迟队列中。
第一延迟单元803,用于针对延迟队列中的退单请求,在添加到延迟队列的第三预设时长之后,将延迟队列中所针对的退单请求重新添加到待处理队列中。
该装置实施例的解释可以参见上述方法实施例。
如图9所示,为本公开提供的另一种退单请求处理装置的结构示意图。该装置可以包括以下单元。
第二获取单元901,用于获取退单请求,并将所获取的退单请求添加到待处理队列中。
第二处理单元902,用于从待处理队列中获取退单请求,执行以下步骤:在针对待处理队列中获取的退单请求,确定对应的中间结果集合为空的情况下,处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求添加到延迟队列中;在所针对的退单请求对应的中间结果集合不为空的情况下,基于所针对的退单请求当前对应的中间结果集合,继续处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成,并且添加到延迟队列的次数小于预设次数的情况下,将所针对的退单请求添加到延迟队列中;在所针对的退单请求处理超时未完成,并且添加到延迟队列的次数大于或等于预设次数的情况下,将所针对的退单请求添加到死信队列中。
第二延迟单元903,用于针对延迟队列中的退单请求,在添加到延迟队列的第三预设时长之后,将延迟队列中所针对的退单请求重新添加到待处理队列中。
该装置实施例的解释可以参见上述方法实施例。
本公开还提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述任一方法实施例。
本公开还提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够实现上述任一方法实施例。
本公开还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现一种退单请求处理方法。
图10示出了本公开所提供的一种更为具体的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作***和其他应用程序,在通过软件或者固件来实现本公开所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本公开方案所必需的组件,而不必包含图中所示的全部组件。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种退单请求处理方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本公开可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本公开方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本公开的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护。
Claims (14)
1.一种退单请求处理方法,其特征在于,包括:
获取退单请求进行处理,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中;
在所述退单请求处理超时未完成的情况下,循环执行以下步骤,直到满足预设循环停止条件:
基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中。
2.根据权利要求1所述的方法,其特征在于,所述基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求,包括:
在第一预设时长之后,基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求。
3.根据权利要求1所述的方法,其特征在于,所述基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求,包括:
根据循环次数与等待时长之间预设的对应关系,确定当前循环次数对应的等待时长;循环次数与等待时长正相关;
在等待所确定的等待时长之后,基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述获取退单请求进行处理,包括:
获取退单请求,确定所述退单请求对应的目标业务***;
获取所述目标业务***针对是否允许所述退单请求对应的订单退单的判断结果;
在确定不允许退单的情况下,确定退单结果,并响应于所述退单请求返回退单结果;
在确定允许退单的情况下,获取资源退还结果,并根据所获取的资源退还结果确定退单结果,响应于所述退单请求返回退单结果;
在成功返回退单结果的情况下,确定所述退单请求处理完成。
5.根据权利要求4所述的方法,其特征在于,所述获取资源退还结果,包括:
针对所述退单请求所请求退还的资源,发起资源退还申请,并获取资源退还结果。
6.根据权利要求4所述的方法,其特征在于,所述处理过程中产生的中间结果包括以下至少一项:
所述退单请求对应的目标业务***信息;
是否允许所述退单请求对应的订单退单的判断结果;
资源退还结果;
退单结果。
7.根据权利要求1至3中任一项所述的方法,其特征在于,获取退单请求之后,所述方法还包括:存储所述退单请求。
8.根据权利要求1至3中任一项所述的方法,其特征在于,所述预设循环停止条件包括以下至少一项:
所述退单请求处理完成;
循环次数大于预设次数;
循环耗时时长大于预设循环时长。
9.一种退单请求处理方法,其特征在于,包括:
获取退单请求,并将所获取的退单请求添加到待处理队列中;
从所述待处理队列中获取退单请求,执行以下步骤:
在针对所述待处理队列中获取的退单请求,确定对应的中间结果集合为空的情况下,处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求添加到延迟队列中;
在所针对的退单请求对应的中间结果集合不为空的情况下,基于所针对的退单请求当前对应的中间结果集合,继续处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求添加到延迟队列中;
针对所述延迟队列中的退单请求,在添加到所述延迟队列的第三预设时长之后,将所述延迟队列中所针对的退单请求重新添加到所述待处理队列中。
10.一种退单请求处理方法,其特征在于,包括:
获取退单请求,并将所获取的退单请求添加到待处理队列中;
从所述待处理队列中获取退单请求,执行以下步骤:
在针对所述待处理队列中获取的退单请求,确定对应的中间结果集合为空的情况下,处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求添加到延迟队列中;
在所针对的退单请求对应的中间结果集合不为空的情况下,基于所针对的退单请求当前对应的中间结果集合,继续处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成,并且添加到延迟队列的次数小于预设次数的情况下,将所针对的退单请求添加到延迟队列中;在所针对的退单请求处理超时未完成,并且添加到延迟队列的次数大于或等于预设次数的情况下,将所针对的退单请求添加到死信队列中;
针对所述延迟队列中的退单请求,在添加到所述延迟队列的第三预设时长之后,将所述延迟队列中所针对的退单请求重新添加到所述待处理队列中。
11.根据权利要求10所述的方法,其特征在于,还包括:
针对所述死信队列中的退单请求,在添加到所述死信队列的第四预设时长之后,基于所述死信队列中所针对的退单请求当前对应的中间结果集合,继续处理所针对的退单请求,并将处理过程中产生的中间结果添加到所针对的退单请求对应的中间结果集合中;在所针对的退单请求处理超时未完成的情况下,将所针对的退单请求重新添加到死信队列中;
所述第三预设时长小于所述第四预设时长。
12.一种退单请求处理装置,其特征在于,包括:
处理单元,用于获取退单请求进行处理,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中;
循环单元,用于在所述退单请求处理超时未完成的情况下,循环执行以下步骤,直到满足预设循环停止条件:
基于所述退单请求当前对应的中间结果集合,继续处理所述退单请求,并将处理过程中产生的中间结果添加到所述退单请求对应的中间结果集合中。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至11中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够实现如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211185438.2A CN117829939A (zh) | 2022-09-27 | 2022-09-27 | 一种退单请求处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211185438.2A CN117829939A (zh) | 2022-09-27 | 2022-09-27 | 一种退单请求处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117829939A true CN117829939A (zh) | 2024-04-05 |
Family
ID=90523321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211185438.2A Pending CN117829939A (zh) | 2022-09-27 | 2022-09-27 | 一种退单请求处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117829939A (zh) |
-
2022
- 2022-09-27 CN CN202211185438.2A patent/CN117829939A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111245900B (zh) | 一种分布式消息发送的处理***及其处理方法 | |
CN110020846B (zh) | 一种转账业务处理方法及*** | |
CN111553699B (zh) | 一种资源调度方法及装置 | |
CN113535721A (zh) | 一种数据写入方法及装置 | |
CN109345249B (zh) | 一种支付失败处理方法及装置 | |
CN106612263B (zh) | 一种用于处理应用访问请求的方法与设备 | |
CN112099921B (zh) | 基于JVM的Java应用***预热方法及*** | |
CN111159298B (zh) | 业务请求处理方法、装置、电子设备及存储介质 | |
CN111125168B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN114331446B (zh) | 区块链的链外服务实现方法、装置、设备和介质 | |
CN112258300B (zh) | 一种针对订单生成的审核方法及装置 | |
CN116527652A (zh) | 一种文件格式转换路径的确定方法、装置、设备及介质 | |
CN117829939A (zh) | 一种退单请求处理方法、装置、设备及存储介质 | |
CN114039981B (zh) | 一种消息处理方法、装置、服务器及存储介质 | |
CN115563160A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN112950171A (zh) | 一种银行业务处理***及方法 | |
CN113592470A (zh) | 业务处理方法、装置、电子设备以及存储介质 | |
CN111309495A (zh) | 批量处理请求发起方法、装置及风险识别平台、存储介质 | |
CN117827916A (zh) | 一种支付结果获取方法、装置、设备及存储介质 | |
CN111383025B (zh) | 风控数据转发的方法、装置及电子设备 | |
CN112732413B (zh) | 异常处理方法、装置、计算机设备和计算机可读存储介质 | |
US20220366425A1 (en) | Service management system for processing a request | |
CN110827009B (zh) | 一种基于账户余额限制的资金转移方法及装置 | |
CN110264211B (zh) | 风控方法、***、装置及设备 | |
CN113919829A (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 |