回调处理方法及平台、设备、存储介质和程序产品与流程

文档序号:29627922发布日期:2022-04-13 14:59阅读:145来源:国知局
回调处理方法及平台、设备、存储介质和程序产品与流程

1.本公开涉及计算机技术领域,尤其涉及回调处理技术领域,具体涉及一种回调处理方法、回调处理平台、电子设备、计算机可读存储介质和计算机程序产品。


背景技术:

2.相关技术中,业务方可能存在需要回调某些其他业务方接口的场景或需求。然而目前,各业务方系统对于涉及到回调方面的业务,通常需要实现并维护自己的回调处理逻辑,导致存在过多的重复开发工作,降低开发效率。同时,由于个人编码风格等原因,回调过程中涉及到的回调策略例如回调失败重试策略等也不尽相同,难以实现统一。
3.在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。


技术实现要素:

4.本公开提供了一种回调处理方法、回调处理平台、电子设备、计算机可读存储介质和计算机程序产品。
5.根据本公开的一方面,提供了一种回调处理方法,包括:接收第一业务系统通过回调处理平台下发的回调任务请求,所述回调任务请求中携带与回调任务的回调接口和回调策略有关的信息,其中,所述回调处理平台与包括所述第一业务系统在内的多个业务系统对接,用于为所述多个业务系统提供包括回调策略在内的统一管理;以及根据所述回调任务请求,对所述回调任务进行处理。
6.根据本公开的另一方面,提供了一种回调处理平台,包括:任务接收单元,被配置为接收第一业务系统通过所述回调处理平台下发的回调任务请求,所述回调任务请求中携带与回调任务的回调接口和回调策略有关的信息,其中,所述回调处理平台与包括所述第一业务系统在内的多个业务系统对接,用于为所述多个业务系统提供包括回调策略在内的统一管理;以及任务处理单元,被配置为根据所述回调任务请求,对所述回调任务进行处理。
7.根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在由所述至少一个处理器执行时致使所述至少一个处理器执行本公开提供的上述回调处理方法。
8.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令在由计算机执行时致使所述计算机执行本公开提供的上述回调处理方法。
9.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在由处理器执行时实现本公开提供的上述回调处理方法。
10.根据本公开的一个或多个实施例,由于可以通过设置的统一的回调处理平台来接收各业务系统下发的回调任务请求并对所述回调任务请求对应的回调任务进行相应处理,其中,所述回调处理平台可与多个业务系统对接,用于为所述多个业务系统提供包括回调策略在内的统一管理,因而可以减少回调处理逻辑开发过程中的大量重复工作,提高开发效率,同时还可以实现不同业务系统的回调策略等的统一管理,提高回调业务管理的效率和准确性,以便为使用方提供更为可靠的统一的回调任务处理和业务支撑。
11.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
13.图1示出了根据本公开示例性实施例的回调处理方法的流程图;
14.图2示出了根据本公开示例性实施例的回调处理过程中的回调接口和业务系统的状态流转示意图;
15.图3示出了根据本公开示例性实施例的回调处理方法的另一流程图;
16.图4示出了根据本公开示例性实施例的回调处理平台的结构示意图;
17.图5示出了根据本公开实施例的电子设备的框图。
具体实施方式
18.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
19.在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
20.在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。另外,在本公开中,“多个”或类似数量术语指的是两个或两个以上。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
21.相关技术中,业务方可能存在需要回调某些其他业务方接口的场景或需求,例如,业务方可能存在需要调用发送短信的目标接口以将消息推送至大数据平台的场景或需求等。然而目前,各业务方系统对于涉及到回调方面的业务,通常需要实现并维护自己的回调处理逻辑,导致存在过多的重复开发工作,降低开发效率。同时,由于个人编码风格等原因,回调过程中涉及到的回调策略例如回调失败重试策略等也不尽相同,难以实现统一。
22.为解决上述问题,本公开提供了一种基于统一的回调处理平台的回调处理方法,其中,所述回调处理平台可与多个业务系统对接,用于为所述多个业务系统提供包括回调策略在内的统一管理。由于可以通过所述统一的回调处理平台来接收各业务系统下发的回调任务请求并对所述回调任务请求对应的回调任务进行相应处理,因而可以减少回调处理逻辑开发过程中的大量重复工作,提高开发效率,同时还可以实现不同业务系统的回调策略等的统一管理,提高回调业务管理的效率和准确性,以便为使用方提供更为可靠的统一的回调任务处理和业务支撑。
23.以下将结合附图,详细描述本公开的实施例。
24.图1示出了根据本公开示例性实施例的回调处理方法的流程图。如图1所示,所述回调处理方法包括:步骤s101、接收第一业务系统通过回调处理平台下发的回调任务请求,所述回调任务请求中携带与回调任务的回调接口和回调策略有关的信息,其中,所述回调处理平台与包括所述第一业务系统在内的多个业务系统对接,用于为所述多个业务系统提供包括回调策略在内的统一管理;以及步骤s102、根据所述回调任务请求,对所述回调任务进行处理。
25.在本公开中,回调处理平台作为统一的回调中心可支持多个业务系统的回调任务请求的处理,其中,回调处理平台所支持的多个业务系统中的每个业务系统可指的是任意的存在通过所述回调处理平台回调相应目标接口的需求的业务方系统,例如,回调处理平台所支持的其中一个或多个业务系统可以是需要通过所述回调处理平台调用发送短信的目标接口以将消息推送至大数据平台等的(消息生成/推送)系统。可以理解的是,本公开实施例中提及的用于发送短信的目标接口仅是所述回调处理平台所支持调用的多种目标接口中的一种可能的接口示例,根据实际应用场景需求,所述回调处理平台还可支持对多种其他目标接口的调用,以支持不同业务系统的不同目标接口回调需求。另外,本公开中提及的回调是模块之间的一种常用调用方式,具体而言,回调指的是模块之间的一种双向调用模式,即,被调用方在接口被调用时也会调用对方的接口。此外,可以理解的是,本公开实施例是以回调处理平台所支持的多个业务系统中的其中一个业务系统为例对回调处理平台与该业务系统之间的交互过程进行示例说明的,至于回调处理平台所支持的多个业务系统中其他各个业务系统,其与回调处理平台之间的交互可以采用与该示例业务系统一致或类似的方式。换言之,本公开实施例中的第一业务系统可以是回调处理平台所支持的多个业务系统中的任意一个业务系统,即,回调处理平台所支持的多个业务系统中每个业务系统均可以按照与本公开中描述的方式相一致或类似的方式与回调处理平台之间进行交互。
26.根据一些实施例,在执行步骤s101中的接收第一业务系统通过回调处理平台下发的回调任务请求之前,所述方法还可包括:确定所述第一业务系统已在所述回调处理平台处完成注册操作(即,已在所述回调处理平台创建或完成回调订阅)。由此,可以实现各业务系统只有在回调处理平台处成功完成注册的情况下才能够使用回调处理平台下发回调任务,因而可以提高通过所述回调处理平台进行回调处理的安全性。
27.根据一些实施例,响应于确定第一业务系统尚未在所述回调处理平台处完成注册操作,可以指示或提醒所述第一业务系统在所述回调处理平台进行注册操作,以便可以使用所述回调处理平台提供的回调业务功能。根据一些实施例,针对每一在所述回调处理平台处完成注册操作的业务系统,可以在相应的数据库(例如redis数据库等)存储对应的注
册信息(即回调订阅信息),以便于对这些业务系统进行统一的管理。所存储的各业务系统的注册信息包括但不限于用于唯一标识相应业务系统的标识信息(例如物理因特网ip地址等),注册时间等等。
28.如前文所述,本公开实施例中的回调处理平台作为统一的回调中心可以为多个业务系统提供包括回调策略在内的统一管理。各业务系统在通过回调处理平台下发回调任务请求即创建回调任务时,可以通过所述回调处理平台指定与相应回调任务的回调接口(即该业务系统需要所述回调处理平台调用的目标接口)和回调策略有关的信息。
29.根据一些实施例,与回调接口有关的信息包括回调接口的地址(例如物理ip地址或端口号等),回调接口的请求方式,以及回调接口的回调请求参数(例如业务系统待传输给回调接口的参数)中的至少一种。
30.示例地,以所述回调接口为前文提及的用于发送短信的目标接口为例,所述回调接口的请求方式可包括get请求方式或post请求方式。相应地,所述回调接口的回调请求参数可以为对应于get请求方式的url(uniform resource locator,统一资源定位符)形式的参数,即,将传输参数包含在url中;或对应post请求方式的body(包体)形式的参数,即,将传输参数包含在body中。可以理解的是,上述有关回调接口所支持的请求方式和/或回调请求参数的数据格式的说明仅为示例,根据实际场景需求和/或根据回调接口的不同功能或类型,回调接口所支持的请求方式和/或回调请求参数的数据格式还可以包括各种其他不同的方式和/或格式。
31.根据一些实施例,与回调策略有关的信息包括与回调失败重试策略有关的信息,所述与回调失败重试策略有关的信息包括针对回调接口设置的第一最大回调重试次数。其中,所述第一最大回调重试次数的取值可以根据实际应用需求(例如对回调任务的处理结果和/或处理速度的要求高低等等)灵活设置,例如可以设置为5~10范围内的任一数值或更大或更少的数值等等。
32.根据一些实施例,所述与回调失败重试策略有关的信息还包括所述回调任务的相邻两次回调处理操作之间的时间间隔,其中,所述回调任务的不同的相邻两次回调处理操作之间的时间间隔可相同或不同。
33.换言之,本公开实施例的回调处理平台可提供两种不同的回调失败重试策略供各业务系统创建回调任务时进行选择,一种为规定回调任务的每相邻两次回调处理操作之间的时间间隔为一固定值,该固定值可由用户根据实际需求(例如基于或充分考虑到对回调任务进行一次处理所需的预估时间等等)设置(例如设置为10s~15s范围内的任一数值等等),也可为平台默认的数值;另一种为允许用户灵活定义回调任务的每对相邻两次回调处理操作之间的时间间隔,以使得回调任务的不同的相邻两次回调处理操作之间的时间间隔可不同。根据一些实施方式,对于第二种回调失败重试策略,回调任务的不同的相邻两次回调处理操作之间的时间间隔可呈递增趋势,一种示例可为:第一次回调处理操作和第二次回调处理操作(即第一次重试操作)之间的时间间隔可定义为10s,第二次回调处理操作和第三次回调处理操作之间的时间间隔可定义为15s,第三次回调处理操作和第四次回调处理操作之间的时间间隔可定义为30s,等等。可以理解的是,以上有关各时间间隔的数值的说明仅为示例,根据实际应用需求,还可各自设置为其他不同的数值。
34.通过允许用户将回调任务的不同的相邻两次回调处理操作之间的时间间隔设置
为不同的数值(例如设置为呈递增趋势的数值),可以提高回调任务处理的灵活性和适用性,使得回调任务的处理更符合用户实际需求。另外,由于随着重试次数的增加,相邻两次回调处理操作之间的时间间隔可以逐渐增加,因而还可以达到既可以避免因为频繁的重试而影响平台或系统的稳定性,又会在回调任务处理失败后给到充足的时间让网络或系统等自行恢复的效果(这是因为回调任务处理失败的原因很大可能是因为网络原因或者回调接口方系统因为性能原因而发生抖动等,这些问题很大概率是可以自行修复的)。
35.根据一些实施例,在接收到第一业务系统通过回调处理平台下发的回调任务请求,即在第一业务系统通过回调处理平台创建回调任务以指定与回调任务的回调接口和回调策略有关的信息之后,可将相应的回调任务(及与其有关的各种回调数据/信息)发送至消息队列,以通过所述消息队列实现异步入库。由此,通过引入消息队列可解耦数据库的写库操作,减轻数据库的压力。示例地,可以通过pulsar实现消息队列,通过tidb实现与消息队列对接的数据库,但本公开实施例并不限于此。
36.根据一些实施例,在按照上文所述方式执行完步骤s101之后,即可执行步骤s102所述的根据所述回调任务请求,对所述回调任务进行处理的操作。
37.根据一些实施例,步骤s102所述的根据所述回调任务请求,对所述回调任务进行处理,包括:根据所述回调任务请求中携带的与回调任务的回调接口和回调策略有关的信息,对所述回调任务进行处理(例如,通过对回调任务请求进行参数解析,确定回调接口地址,回调请求参数以及第一最大回调重试次数等信息,并基于这些信息对所述回调任务进行处理);以及根据每一次对所述回调任务进行处理所得到的处理结果,设置所述回调接口的回调状态,其中,所述回调接口的回调状态包括回调接口成功状态、回调接口中间状态或回调接口失败状态。
38.通过将回调接口的回调状态细分为成功状态、中间状态和失败状态三个不同的状态,可以达到基于回调接口的不同状态简便准确地得知每一次回调处理操作的具体结果和/或当前所处回调流程节点的效果。另外,当通过回调处理平台的前端页面对回调接口的不同状态进行展示(主动展示和/或经由用户查询而被动展示)时,回调接口的不同的状态可以分别以不同的颜色展示(例如绿色表示成功状态,黄色表示中间状态,红色表示失败状态等),以便于用户更加简便准确地得知每一次回调处理操作的具体结果和/或当前所处回调流程节点。
39.根据一些实施例,图2示出了根据本公开示例性实施例的回调处理过程中的回调接口的状态流转示意图。如图2所示,根据每一次对所述回调任务进行处理所得到的处理结果,设置所述回调接口的回调状态,包括:响应于确定所述回调任务的当前次处理执行成功,将所述回调接口的回调状态设置为回调接口成功状态;响应于确定所述回调任务的当前次处理执行失败并且确定所述回调任务的当前已执行重试次数(图2中的rc,即retrycount)小于所述回调接口的所述第一最大回调重试次数(图2中的mrc,即maxretrycount),将所述回调接口的回调状态设置为回调接口中间状态;以及响应于确定所述回调任务的当前次处理执行失败并且确定所述回调任务的当前已执行重试次数已达到所述回调接口的所述第一最大回调重试次数,将所述回调接口的回调状态设置为回调接口失败状态。
40.根据一些实施例,如图2所示,由于处于中间状态的回调接口对应的当前已执行重
试次数尚未达到相应的最大回调重试次数,因而通过继续执行剩余次数的重试操作,处于中间状态的回调接口最终可转变为处于成功状态或失败状态。即,在将所述回调接口的回调状态设置为回调接口中间状态之后,所述方法还包括:对所述回调任务进行重试处理(其中,重试处理的开始时间可以根据所设置的所述回调任务的相邻两次回调处理操作之间的时间间隔而定;即,除了可响应于将所述回调接口的回调状态设置为回调接口中间状态而立即对所述回调任务进行重试处理之外,在设置了回调任务的相邻两次回调处理操作之间的时间间隔的情况下,还可以等待直至相应的时间间隔到达后再执行所述重试处理);响应于对所述回调任务进行的重试处理执行成功,将所述回调接口的回调状态从回调接口中间状态修改为回调接口成功状态;以及响应于对所述回调任务进行的重试处理执行失败并且确定所述回调任务的当前已执行重试次数已达到所述回调接口的所述第一最大回调重试次数,将所述回调接口的回调状态从回调接口中间状态修改为回调接口失败状态。至于其他情况,例如对所述回调任务进行的重试处理执行失败并且所述回调任务的当前已执行重试次数仍小于所述回调接口的所述第一最大回调重试次数的情况,可将所述回调接口的回调状态保持为回调接口中间状态,并继续执行对所述回调任务的重试处理,对此不作赘述。
41.在通过上述处理流程基于所述第一最大回调重试次数确定所述回调任务的有关执行成功或执行失败的处理结果(即,回调接口的回调结果)之后,若第一业务系统未要求所述回调处理平台向其反馈或通知相应的处理结果(例如,未设置处理结果通知地址等),则可认为回调任务的处理过程已结束。在此情况下,第一业务系统可通过基于创建回调任务时被分配的任务标识即任务id主动在所述回调处理平台的前端页面进行查询的方式获知回调任务的处理结果(即执行成功或执行失败的处理结果)。
42.根据一些实施例,第一业务系统在创建回调任务时可能会要求回调处理平台向其反馈或通知基于第一最大回调重试次数所确定的处理结果(例如,指定处理结果通知地址等)。此种情况下,考虑到回调处理平台至第一业务系统的处理结果通知过程可能会存在因网络抖动或处理结果通知地址存在错误等问题而存在的执行失败等情况,所述第一业务系统还可通过回调处理平台指定第二最大回调重试次数,以提高处理结果通知至第一业务系统的成功率。
43.相应地,所述与回调失败重试策略有关的信息还可包括与处理结果的通知有关的第二最大回调重试次数,所述方法还可包括:向所述第一业务系统通知基于所述第一最大回调重试次数所确定的所述回调任务的有关执行成功或执行失败的第一处理结果;以及基于所述第一处理结果所对应的所述回调接口的回调状态、所述第一处理结果的通知结果状态以及所述第二最大回调重试次数,设置所述第一业务系统的回调状态,其中,所述第一业务系统的回调状态包括业务系统成功状态、业务系统中间状态或业务系统失败状态。
44.通过将业务系统的回调状态也细分为成功状态、中间状态和失败状态三个不同的状态,可以达到能够更为细致准确地得知每一次回调处理操作的具体结果(包括回调任务的执行结果以及执行结果的通知结果等)和/或当前所处回调流程节点的效果。另外,当通过回调处理平台的前端页面对业务系统的不同状态进行展示(主动展示和/或经由用户查询而被动展示)时,业务系统的不同的状态也可以分别以不同的颜色(例如绿色表示成功状态,黄色表示中间状态,红色表示失败状态等)展示,以便于用户更加简便准确地得知每一次回调处理操作的具体结果和/或当前所处回调流程节点。
45.可以理解的是,本公开中的第二最大回调重试次数的取值可与所述第一最大回调重试次数的取值相同或不同,并且也可以根据实际应用需求灵活设置,例如可以设置为5~10范围内的任一数值或更大或更少的数值等等。
46.根据一些实施例,如图2所示(图2也示出了根据本公开示例性实施例的回调处理过程中的业务系统例如第一业务系统的状态流转示意图),基于所述第一处理结果所对应的所述回调接口的回调状态、所述第一处理结果的通知结果状态以及所述第二最大回调重试次数,设置所述第一业务系统的回调状态,包括:
47.响应于所述第一处理结果所对应的所述回调接口的回调状态为回调接口成功状态:根据确定所述第一处理结果被成功通知至所述第一业务系统,将所述第一业务系统的回调状态设置为业务系统成功状态;以及根据确定所述第一处理结果未被成功通知至所述第一业务系统,并且确定由处理结果通知失败而触发的所述回调任务的重试处理的当前已执行次数(图2中的rrc,即reretrycount)小于所述第二最大回调重试次数(图2中的mrrc,即maxreretrycount),将所述第一业务系统的回调状态设置为业务系统中间状态。
48.根据一些实施例,如图2所示,基于所述第一处理结果所对应的所述回调接口的回调状态、所述第一处理结果的通知结果状态以及所述第二最大回调重试次数,设置所述第一业务系统的回调状态,还可包括:
49.响应于所述第一处理结果所对应的所述回调接口的回调状态为回调接口失败状态:根据确定所述第一处理结果未被成功通知至所述第一业务系统,并且确定由处理结果通知失败而触发的所述回调任务的重试处理的当前已执行次数(图2中的rrc)小于所述第二最大回调重试次数(图2中的mrrc),将所述第一业务系统的回调状态设置为业务系统中间状态;以及根据确定所述第一处理结果(此时为回调任务执行失败的处理结果)被成功通知至所述第一业务系统,将所述第一业务系统的回调状态设置为业务系统成功状态。
50.根据一些实施例,如图2所示,由于处于中间状态的第一业务系统对应的由处理结果通知失败而触发的当前已执行重试次数尚未达到相应的最大回调重试次数,因而通过继续执行剩余次数的重试操作,处于中间状态的第一业务系统可转变为处于成功状态或失败状态。即,在将所述第一业务系统的回调状态设置为业务系统中间状态之后,所述方法还可包括:
51.对所述回调任务进行重试处理;响应于对所述回调任务进行的重试处理的相应处理结果(无论是执行成功或是执行失败)被成功通知至所述第一业务系统,将所述第一业务系统的回调状态从业务系统中间状态修改为业务系统成功状态;以及响应于对所述回调任务进行的重试处理的相应处理结果(无论是执行成功或是执行失败)未被成功通知至所述第一业务系统且由处理结果通知失败而触发的所述回调任务的重试处理的当前已执行次数已达到所述第二最大回调重试次数,将所述第一业务系统的回调状态从业务系统中间状态修改为业务系统失败状态。至于其他情况,例如对所述回调任务进行的重试处理的相应的处理结果未被成功通知至所述第一业务系统,并且由处理结果通知失败而触发的所述回调任务的重试处理的当前已执行次数仍小于所述第二最大回调重试次数的情况等,可将所述第一业务系统的回调状态保持为业务系统中间状态,并继续执行对所述回调任务的重试处理。
52.可以理解的是,由于存在经过第二最大回调重试次数的重试处理,处理结果仍无
法成功到达第一业务系统的情况,因而第一业务系统可在自创建回调任务起的设定通知时长(其取值可根据实际需求灵活设置,例如可为5~10分钟范围内的任一数值等等)到达而仍未接收到相应处理结果的情况下,通过基于创建回调任务时被分配的任务id主动在所述回调处理平台的前端页面进行查询的方式获知回调任务的执行结果(即回调结果)和/或执行结果的通知结果。示例地,可基于回调处理平台设置或存储的回调接口的回调状态以及业务接口的回调状态分别获知回调任务的执行结果和执行结果的通知结果。
53.此外,尽管前文以第二最大回调重试次数(例如mrrc)不为零的情况对回调结果的通知过程进行了示例描述,可以理解的是,根据实际应用需求,第二最大回调重试次数也可以设置为0(例如图2右下方示出的“重试为0”的情况;即,第一业务系统虽然指定回调处理平台向其进行回调结果的通知,但并未指定相应的与结果通知有关的重试次数从而该值默认为0等)。此种情况下,回调处理平台在向第一业务系统通知回调接口的有关执行成功或执行失败的第一处理结果之后,可直接基于所述第一处理结果的通知结果状态,确定或设置所述第一业务系统的回调状态。例如,响应于确定所述第一处理结果(无论是执行成功或是执行失败)被成功通知至所述第一业务系统,将所述第一业务系统的回调状态设置为业务系统成功状态;以及,响应于确定所述第一处理结果(无论是执行成功或是执行失败)未被成功通知至所述第一业务系统,将所述第一业务系统的回调状态设置为业务系统失败状态。
54.类似地,前文描述的第一最大回调重试次数(例如mrc)也可以存在取值为0的特例。此种情况下,根据回调任务的一次执行结果即可直接确定/设置回调接口的回调状态。例如,响应于确定所述回调任务执行成功,将所述回调接口的回调状态设置为回调接口成功状态;以及响应于确定所述回调任务执行失败,将所述回调接口的回调状态设置为回调接口失败状态。
55.根据一些实施例,本公开实施例所述的回调处理方法还可包括:响应于确定当所述回调任务的第一最大回调重试次数(和/或第二最大回调重试次数)用尽时所述回调任务仍未执行成功,接收用户通过所述回调处理平台(例如通过所述回调处理平台的前端页面中设置的手动回调补偿控件等)发起的手动回调请求;以及根据所述手动回调请求,对所述回调任务进行回调补偿处理。通过这种方式,由于额外提供了回调失败重试次数用尽后的手动回调补偿功能,可进一步提高通过回调处理平台进行回调业务处理的适用性,提高用户使用回调处理平台的应用体验。可以理解的是,若回调任务执行成功,则回调处理平台的前端页面中设置的手动回调补偿控件可为不可用状态(即此时不能发起手动回调请求)。
56.根据一些实施例,所述回调任务请求中还可携带所述第一业务系统的回调失败报警地址,所述方法还包括:响应于确定所述回调任务在设定时段内的失败次数达到失败阈值,通过所述回调失败报警地址向所述第一业务系统进行报警。其中,第一业务系统的回调失败报警地址可以包括接收报警信息的邮件地址,或短信地址等等。所述设定时段和失败阈值均可根据实际应用需求灵活设置,例如,可将设定时段设置为1分钟,将失败阈值设置为8~10等等,即,若1分钟内的失败次数达到8次以上,可以向对应的回调失败报警地址发送报警消息。所述报警消息可以包括失败原因,发生失败的时间,发生失败的任务id等等。
57.根据一些实施例,本公开实施例所述的回调处理方法还可包括:确定所述回调任务的回调接口的流量限制阈值(例如每分钟的请求次数上限);以及根据所述流量限制阈
值,对所述回调接口进行流量控制。由此,可以实现统一的限流支持功能,进一步提高通过回调处理平台进行回调业务处理的适用性,提高用户使用回调处理平台的应用体验。
58.根据一些实施方式,回调处理平台可基于第一业务系统创建回调任务时输入的有关回调接口的流量限制阈值的参数(该参数可携带在回调任务请求中)确定回调接口的流量限制阈值;或者,回调处理平台可通过与回调接口之间的通信交互,获取回调接口的流量限制阈值。
59.根据一些实施例,本公开实施例所述的回调处理方法还可包括:采集所述第一业务系统的与所述回调任务有关的回调数据/信息(例如回调任务的执行成功或执行失败的处理结果,执行失败的失败原因,失败次数,对应的回调接口地址等等);以及对采集到的所述第一业务系统的与所述回调任务有关的回调数据/信息,以及包括所述第一业务系统在内的各业务系统通过所述回调处理平台进行的其他各回调任务的回调数据/信息进行统一聚合分析。所述统一聚合分析的结果可用于获知相应回调接口的处理性能(例如流量限制阈值)、健康度或稳定性等等。
60.参考前文,在本公开实施例中,与所述回调任务有关的回调数据/信息可被发送至消息队列,以通过所述消息队列实现异步写入数据库,由此,可解耦数据库的写库操作,减轻数据库的压力。然而,数据库仍可能会存在意外宕机等造成数据库不可用的情况,为了解决该问题,本公开实施例所述的回调处理方法还可包括:响应于所述回调数据/信息写入数据库失败,将所述回调数据/信息发送至延时队列;以及响应于设定的延迟时长(其取值可根据实际需求灵活设置,例如可为5~10分钟范围内的任一数值等等)到达,尝试将所述延时队列中的所述回调数据写入至数据库(若入库失败,间隔所述设定的延迟时长再次尝试入库)。由此,通过引入延时队列,在数据库意外宕机等造成数据库不可用的情况下,回调处理平台依旧可以对外提供服务,从而可提高通过回调处理平台进行回调业务处理的可靠性,提高用户使用回调处理平台的应用体验。可以理解的是,所述延时队列可以包含在消息队列中作为消息队列的子队列。
61.参照前文相关描述,本公开实施例中的回调处理平台可以支持回调策略的统一指定/管理,回调结果(即前文提及的回调任务的执行结果等)的统一聚合分析/审计,并支持限流、手动回调补偿以及回调失败报警通知等等,同时在数据库意外宕机等造成数据库不可用时依旧可以对外提供服务,解耦了业务系统与回调接口方的直接接触,为使用方提供了更为可靠的回调任务处理和业务支撑。另外,回调处理平台还可支持接口token(令牌)鉴权校验,例如,若对方接口(例如回调接口)需要鉴权,则回调处理平台可将相应的token携带在对应的信息或请求中发送给对方接口,等等。
62.以上结合图1和图2对本公开示例性实施例的回调处理方法进行了详细说明。下面将继续结合图3对本公开示例性实施例的回调处理方法的一种可能的整体流程进行简要说明。如图3所示,所述回调处理方法包括:
63.步骤s301、确定待使用回调处理平台的业务系统是否已在所述回调处理平台处完成注册操作(即是否创建回调订阅),若是,则执行步骤s302,若否,则可指示或提醒所述业务系统在所述回调处理平台进行注册操作。
64.参照前文相关描述,针对每一在回调处理平台处完成注册操作的业务系统,可以在相应的数据库(例如redis数据库等)存储对应的注册信息(即回调订阅信息)。
65.步骤s302、接收所述业务系统通过所述回调处理平台下发的回调任务请求(即,业务系统通过回调处理平台创建回调任务)。
66.参照前文相关描述,业务系统在通过回调处理平台下发回调任务请求即创建回调任务时,可以通过所述回调处理平台指定与回调任务的回调接口和回调策略有关的信息。另外,所创建的相应的回调任务可被发送至消息队列,以通过所述消息队列实现异步入库。示例地,可以通过pulsar实现消息队列,通过tidb实现与消息队列对接的数据库。
67.步骤s303、对所述回调任务进行处理并确定所述回调任务的当前次处理是否执行成功,若否,则执行步骤s3041,若是,则执行步骤s3042。
68.参照前文相关描述,回调处理平台可通过对回调任务请求进行参数解析,确定回调接口地址,回调请求参数以及第一最大回调重试次数等信息,并基于这些信息对所述回调任务进行处理。另外可以理解的是,由于消息队列的存在,回调处理平台可通过异步消费方式获取待处理的回调任务。
69.步骤s3041、确定所述回调任务的当前已执行重试次数(rc)是否已达到针对回调接口设置的第一最大回调重试次数(mrc),若是,则执行步骤s3042,若否,则继续返回至步骤s303,以通过步骤s303对所述回调任务进行重试处理。
70.根据一些实施例,如图3所示,若确定回调任务的当前已执行重试次数尚未达到针对回调接口设置的第一最大回调重试次数,可将相应的重试处理任务(例如以delay msg的形式)发送至消息队列,以便后续通过异步消费方式获取该重试处理任务以对所述回调任务进行重试处理。另外,参照前文相关描述,在执行步骤s303和s3042的过程中可基于相应的回调任务执行结果,对回调接口的回调状态进行设置或变更。
71.步骤s3042、向所述业务系统通知基于所述第一最大回调重试次数所确定的所述回调任务的有关执行成功或执行失败的第一处理结果。
72.参照前文相关描述,若业务系统未要求回调处理平台向其反馈或通知相应的第一处理结果,则可无需执行步骤s3042及其后续的有关结果通知的操作,此时,可直接认为对回调任务的处理已结束。
73.步骤s3051、确定所述第一处理结果是否被成功通知至所述业务系统,若是,则执行步骤s306,若否,则执行步骤s3052。
74.步骤s3052、确定由处理结果通知失败而触发的所述回调任务的重试处理的当前已执行次数(rrc)是否已达到所述第二最大回调重试次数(mrrc),若否,则继续返回至步骤s303,以通过步骤s303对所述回调任务进行重试处理,若是,则可结束针对所述回调任务的处理操作。
75.根据一些实施例,如图3所示,若确定由处理结果通知失败而触发的所述回调任务的重试处理的当前已执行次数尚未达到所述第二最大回调重试次数,可将相应的重试处理任务(例如以delay msg的形式)发送至消息队列,以便后续通过异步消费方式获取该重试处理任务以对所述回调任务进行重试处理。
76.步骤s306、根据被成功通知至所述业务系统的第一处理结果,修改数据状态。
77.在步骤s306中,可根据被成功通知至所述业务系统的第一处理结果(可以为回调任务执行成功或执行失败的结果),设置或修改回调接口和/或业务系统的回调状态。步骤s306执行完后,可认为针对所述回调任务的处理操作已结束。
78.根据本公开的另一方面,还提供一种回调处理平台。图4示出了根据本公开示例性实施例的回调处理平台的结构框图,如图4所示,所述回调处理平台400包括:任务接收单元401,被配置为接收第一业务系统通过回调处理平台下发的回调任务请求,所述回调任务请求中携带与回调任务的回调接口和回调策略有关的信息,其中,所述回调处理平台与包括所述第一业务系统在内的多个业务系统对接,用于为所述多个业务系统提供包括回调策略在内的统一管理;以及任务处理单元402,被配置为根据所述回调任务请求,对所述回调任务进行处理。
79.可以理解的是,任务接收单元401和任务处理单元402中的各操作的具体执行方式和/或各参数的具体含义与前文相关描述一致,在此不再赘述。另外,还可以理解的是,回调处理平台还可以包括被配置为执行前文描述的各其他功能的相应单元或模块,对此也不作赘述。
80.根据本公开的另一方面,还提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的回调处理方法。
81.根据本公开的另一方面,还提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述的回调处理方法。
82.根据本公开的另一方面,还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序再被处理器执行时实现上述的回调处理方法。
83.参见图5,现将描述可以作为本公开的电子设备500的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备可以是不同类型的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
84.图5示出了根据本公开实施例的电子设备的框图。如图5所示,电子设备500可以包括能够通过系统总线503彼此通信的至少一个处理器501、工作存储器502、i/o设备504、显示设备505、存储装置506和通信接口507。
85.处理器501可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器501可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。处理器501可以被配置成获取并且执行存储在工作存储器502、存储装置506或者其他计算机可读介质中的计算机可读指令,诸如操作系统502a的程序代码、应用程序502b的程序代码等。
86.工作存储器502和存储装置506是用于存储指令的计算机可读存储介质的示例,指令由处理器501执行来实施前面所描述的各种功能。工作存储器502可以包括易失性存储器和非易失性存储器二者(例如ram、rom等等)。此外,存储装置506可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如cd、dvd)、存储阵列、网络附属存储、存储区域网等等。工作存储器502和存储装置506在本文中都可以
被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器501作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
87.i/o设备504可以包括输入设备和/或输出设备,输入设备可以是能向电子设备500输入信息的任何类型的设备,可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出设备可以是能呈现信息的任何类型的设备,并且可以包括但不限于包括视频/音频输出终端、振动器和/或打印机。
88.通信接口507允许电子设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙tm设备、802.11设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。
89.工作寄存器502中的应用程序502b可以被加载执行上文所描述的各个方法和处理,例如图1中的步骤s101-步骤s104。在一些实施例中,计算机程序的部分或者全部可以经由存储装置506和/或通信接口507而被载入和/或安装到电子设备500上。当计算机程序被加载并由处理器501执行时,可以执行上文描述的回调处理方法的一个或多个步骤。
90.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
91.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
92.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
93.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示设备(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来
将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
94.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
95.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
96.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
97.虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1