异步回调方法、装置、计算机设备和存储介质与流程

文档序号:17720218发布日期:2019-05-22 02:06阅读:180来源:国知局
异步回调方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种异步回调方法、装置、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,系统间的通信越来越多,对于不能实时返回结果的系统间通信,通常都是采用异步调用的方式返回结果。对于系统间的异步调用,通常是通过特定的回调接口进行回调操作,以实现调用结果的传输。

目前,通常是一个异步调用对应一个回调接口,用于传输相应的调用结果。然而,随着系统间通信的剧增,系统间的异步调用也急剧增加,使得回调接口的数量也不断增加,从而增加了回调接口管理复杂度,存在回调接口管理效率低的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够回调接口管理效率的异步回调方法、装置、计算机设备和存储介质。

一种异步回调方法,所述方法包括:

获取异步回调指令,并确定用于响应所述异步回调指令的轮询线程;

通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据;

通过所述轮询线程根据所述回调数据确定调用服务器,并对应于所述调用服务器执行相应的回调操作;

通过所述轮询线程接收所述调用服务器对应反馈的回调结果,并根据所述回调结果在所述回调信息表中更新所述回调数据;

返回至所述通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至针对所述回调信息表中符合预设回调条件的回调数据执行的回调操作均执行完毕。

在其中一个实施例中,所述预设回调条件包括多个预设筛选条件;所述通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据,包括:

从当前未用于筛选回调数据的预设筛选条件中选取单个预设筛选条件,作为当次筛选时的当前筛选条件;

将所述当前筛选条件分别与前次筛选出的回调数据进行匹配;

将与所述当前筛选条件相匹配的回调数据确定为当次筛选出的回调数据,并返回至所述从当前未用于筛选回调数据的预设筛选条件中选取单个预设筛选条件,作为当次筛选时的当前筛选条件的步骤继续执行,直至多个预设筛选条件均用于筛选回调数据。

在其中一个实施例中,所述回调数据包括回调请求数据、回调网络地址和回调方式;所述通过所述轮询线程根据所述回调数据确定调用服务器,并对应于所述调用服务器执行相应的回调操作,包括:

通过所述轮询线程根据所述回调网络地址确定调用服务器,并与所述调用服务器建立连接;

通过所述轮询线程按照所述回调方式,基于所述连接将所述回调请求数据发送至所述回调服务器。

在其中一个实施例中,所述返回至所述通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至针对所述回调信息表中符合预设回调条件的回调数据执行的回调操作均执行完毕,包括:

当通过所述轮询线程成功更新所述回调数据时,使所述轮询线程处于休眠等待状态,并统计所述轮询线程的等待时长;

当所述等待时长达到预设等待时长时,返回至所述通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至针对所述回调信息表中符合预设回调条件的回调数据执行的回调操作均执行完毕。

在其中一个实施例中,所述获取异步回调指令,并确定用于响应所述异步回调指令的轮询线程之前,所述方法还包括:

接收调用服务器发送的调用请求;

根据所述调用请求确定用于响应所述调用请求的业务线程;

通过所述业务线程根据所述调用请求执行相应的调用操作;

当所述调用操作执行完毕时,通过所述业务线程获取相应的回调数据,并将获取的所述回调数据插入预配置的回调信息表中。

一种异步回调装置,所述装置包括:

获取模块,用于获取异步回调指令,并确定用于响应所述异步回调指令的轮询线程;

查询模块,用于通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据;

回调模块,用于通过所述轮询线程根据所述回调数据确定调用服务器,并对应于所述调用服务器执行相应的回调操作;

更新模块,用于通过所述轮询线程接收所述调用服务器对应反馈的回调结果,并根据所述回调结果在所述回调信息表中更新所述回调数据;

轮询模块,用于返回至所述通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至针对所述回调信息表中符合预设回调条件的回调数据执行的回调操作均执行完毕。

在其中一个实施例中,所述预设回调条件包括多个预设筛选条件;

所述查询模块,还用于从当前未用于筛选回调数据的预设筛选条件中选取单个预设筛选条件,作为当次筛选时的当前筛选条件;将所述当前筛选条件分别与前次筛选出的回调数据进行匹配;

所述查询模块,还用于将与所述当前筛选条件相匹配的回调数据确定为当次筛选出的回调数据,并返回至所述从当前未用于筛选回调数据的预设筛选条件中选取单个预设筛选条件,作为当次筛选时的当前筛选条件的步骤继续执行,直至多个预设筛选条件均用于筛选回调数据。

在其中一个实施例中,所述装置还包括:

调用模块,用于接收调用服务器发送的调用请求;根据所述调用请求确定用于响应所述调用请求的业务线程;通过所述业务线程根据所述调用请求执行相应的调用操作;当所述调用操作执行完毕时,通过所述业务线程获取相应的回调数据,并将获取的所述回调数据插入预配置的回调信息表中。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个实施例中所述的异步回调方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个实施例中所述的异步回调方法的步骤。

上述异步回调方法、装置、计算机设备和存储介质,获取到异步回调指令时,确定用于响应该异步回调指令的轮询线程,通过该轮询线程在预配置的回调信息表中轮询符合预设回调条件的回调数据,并针对轮询到的回调数据执行相应的回调操作,进而根据对应于回调操作的回调结果对应更新回调信息表中的回调数据。通过回调信息表统一管理回调数据,按照轮询回调信息表的方式依次查询待回调的回调数据并依次执行回调操作。这样,通过统一的回调接口即可实现对应于不同回调数据的异步回调,而无需针对不同的回调数据分别配置相应的回调接口,减少了回调接口数量,降低了管理回调接口的复杂度,从而提高了针对回调接口的管理效率。

附图说明

图1为一个实施例中异步回调方法的应用场景图;

图2为一个实施例中异步回调方法的流程示意图;

图3为另一个实施例中异步回调方法的流程示意图;

图4为一个实施例中异步回调装置的结构框图;

图5为另一个实施例中异步回调装置的结构框图;

图6为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的异步回调方法,可以应用于如图1所示的应用环境中。其中,回调服务器102通过网络与调用服务器104通过网络进行通信。回调服务器102确定用于响应所获取到的异步回调指令的轮询线程,通过该轮询线程在预配置的回调信息表中查询符合预设回调条件的回调数据,根据回调数据确定调用服务器104并执行回调操作,在接收到调用服务器104对应反馈的调用结果时,根据该调用结果对应更新回调信息表中的回调数据,并返回至在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至在回调信息表中没有查询到符合预设回调条件的回调数据。其中,回调服务器102和调用服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种异步回调方法,以该方法应用于图1中的回调服务器为例进行说明,包括以下步骤:

s202,获取异步回调指令,并确定用于响应异步回调指令的轮询线程。

其中,异步回调指令是用于触发异步回调操作的指令。异步回调是指在接收到调用方发送的调用请求时,无需实时对调用方进行回调以实时向该调用方返回调用结果的回调方式。相应地,异步调用是指调用方向回调方发送调用请求后,无需等待回调方通过执行回调操作对应反馈回调结果而继续执行其他操作的调用方式。可以理解的是,异步调用过程涉及调用方和被调用方,异步回调过程涉及回调方和被回调方,而异步调用与异步回调是相互对应的两个过程,故可将被回调方和调用方统一为调用方,将被调用方和回调方统一为回调方。在本实施例中,用调用服务器表征调用方,用回调服务器表征回调方。

线程是计算机程序中一个单一的顺序控制流程,是能独立运行和独立调度的基本单位。轮询线程是用于响应异步回调指令,以从回调信息表中轮询符合预设回调条件的回调数据并执行相应的回调操作的线程。

具体地,回调服务器实时检测当前系统时间,当检测到的当前系统时间与预配置的预设触发时间一致时,回调服务器根据该预设触发时间触发生成相应的异步回调指令。回调服务器将检测到的当前系统时间与从配置文件中获取到的预设触发时间进行匹配。当匹配成功时,表明当前系统时间与预设触发时间一致,回调服务器触发生成相应的异步回调指令。

在一个实施例中,终端实时检测用户的预设触发操作。当检测到用户的预设触发操作时,终端根据所检测到的预设触发操作生成相应的异步回调指令,并将所生成的异步回调指令发送至回调服务器。

在一个实施例中,当获取到异步回调指令时,回调服务器可根据所获取到的异步回调指令创建用于响应该异步回调指令的轮询线程。回调服务器也可根据异步回调指令从预先创建的线程池中获取当前空闲的线程作为轮询线程。

s204,通过轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据。

其中,预设查询方式是预先设定的从回调信息表中查询符合预设回调条件的回调数据的方式。预设查询方式具体可以是轮询回调信息表中各回调数据的查询方式,比如通过轮询线程按照从前往后的顺序依次在回调信息表中查询符合预设回调条件的回调数据。回调数据是执行回调操作所依据的数据。回调数据包括回调状态、回调次数、最大重试回调次数、回调类型、回调请求数据、回调网络地址、回调方式和关联接口返回结果等中的多种。回调状态包括初始状态、成功或失败,可用字符串分别表示,比如0表示初始状态,1表示成功,3表示失败。最大重试回调次数是指允许进行回调重试的最大次数。回调类型可以是回调名称,比如催收短信回调。

预设回调条件是用于判定回调信息表中的回调数据是否为待回调的回调数据的依据。预设回调条件比如回调状态为指定状态、最大重试回调次数大于预设次数、且回调次数小于最大重试回调次数的回调数据。指定状态比如回调失败或初始状态,预设次数比如零。回调信息表中可包括有多个按照插入时间进行排序的回调数据。可以理解的是,在回调信息表中,插入时间在前的回调数据的排序位置优于插入时间在后的回调数据的排序位置,即插入时间越早的回调数据在该回调信息表中的排序位置越靠前。

具体地,回调服务器通过轮询线程按照排序位置从前至后的顺序,依次将回调信息表中的每条回调数据与预设回调条件进行比较。在当前进行比较的回调数据不符合预设回调条件时,回调服务器通过轮询线程按照排序位置的先后顺序,继续执行将排序位置仅次于该当前进行比较的回调数据的回调数据与预设回调条件进行比较的步骤。在当前进行比较的回调数据符合预设回调条件时,回调服务器通过轮询线程根据该符合预设回调条件的回调数据执行下述步骤s206和s208,以实现针对该符合预设回调条件的回调数据的回调操作。当步骤s206和s208依次执行完毕时,回调服务器通过轮询线程从当前执行的回调操作对应的回调数据所对应的排序位置处,继续执行按照排序位置从前至后的顺序,依次将回调信息表中的每条回调数据与预设回调条件进行比较的步骤。

进一步地,当回调信息表中的回调数据按照排序位置从前至后的顺序依次轮询完毕时,回调服务器通过轮询线程从该回调信息表中排序位置最靠前的回调数据所对应的排序位置处,即从该回调信息表中首条回调数据所对应的排序位置处,继续执行按照排序位置从前至后的顺序,依次将回调信息表中的每条回调数据与预设回调条件进行比较的步骤,直至在该回调信息表中没有查询到符合预设回调条件的回调数据。

举例说明,假设回调信息表中包括回调数据a、b和c。其中,回调数据b符合预设回调条件。回调服务器通过轮询线程将回调数据a与预设回调条件进行比较;由于回调数据a不符合预设回调条件,回调服务器通过轮询线程继续将回调数据b与预设回调条件进行比较;由于回调数据b符合预设回调条件,回调服务器通过轮询线程根据回调数据b执行下述步骤s206和s208;当步骤s206和s208执行完毕时,回调服务器通过轮询线程继续将回调数据c与预设回调条件进行比较;由于回调数据c不符合预设回调条件,回调服务器通过轮询线程按照上述方式继续执行将回调数据a与预设回调条件进行比较的步骤,直至回调数据a、b和c均不符合预设回调条件。可以理解的是,按照上述方式对回调数据b执行回调操作时,该回调操作可能会执行失败,且当再次轮询回调数据b,该回调数据b仍然符合预设回调条件,则继续根据该回调数据b执行下述步骤s206和s208。

s206,通过轮询线程根据回调数据确定调用服务器,并对应于调用服务器执行相应的回调操作。

具体地,回调服务器通过轮询线程从当前所查询到的符合预设回调条件的回调数据中,获取回调网络地址和回调请求数据。回调服务器通过轮询线程根据所获取到的回调网络地址确定调用服务器,并根据该回调网络地址与所确定的调用服务器建立连接,进而通过所建立的连接将相应的回调请求数据发送至调用服务器,以实现对应于该当前所查询到的符合预设回调条件的回调数据的回调操作,从而实现对调用服务器的回调。

在一个实施例中,回调服务器通过轮询线程基于指定的统一回调接口执行对应于调用服务器的回调操作。可以理解的是,针对不同的回调数据所执行的回调操作均可基于该指定的统一回调接口来实现。这样,通过配置和管理该指定的统一回调接口即可实现多个回调数据的回调以及统一管理,降低了回调接口的管理复杂度,从而提高了管理效率。

s208,通过轮询线程接收调用服务器对应反馈的回调结果,并根据回调结果在回调信息表中更新回调数据。

其中,回调结果是回调服务器根据回调数据对调用服务器进行回调时所获取到的结果。回调结果可以是用于表征回调成功或回调失败的编码信息或提示信息。举例说明,用111表示回调成功的回调结果,用000表示回调失败的回调结果。

具体地,调用服务器根据所接收到的回调请求数据执行相应的回调操作,当该对应于回调请求数据的回调操作执行完毕时,调用服务器获取与该回调操作对应的回调结果,并将所获取到的回调结果对应反馈至回调服务器。当通过轮询线程接收到调用服务器针对回调请求数据对应反馈的回调结果时,回调服务器通过该轮询线程在回调信息表中查询与该回调请求数据对应的回调数据,并根据所接收到的回调结果在回调信息表中更新所查询到的回调数据。回调服务器通过该轮询线程根据回调结果在回调信息表中,更新该所查询到的回调数据中的关联接口返回结果、回调状态和回调次数。

举例说明,假设回调服务器通过轮询线程针对回调数据b执行了回调操作。当对应于该回调操作接收到表示回调成功的回调结果时,回调服务器通过轮询线程将回调数据b所包括的关联接口返回结果更新为成功,回调状态更新为成功,以及回调次数加1。以针对回调数据b的第一次回调操作为例,将回调状态由初始状态更新为成功,并将回调次数由0更新为1。当对应于该回调操作接收到表示回调失败的回调结果时,回调服务器通过轮询线程将回调数据b所包括的关联接口返回结果更新为失败,回调状态更新为失败,以及回调次数加1。

在一个实施例中,调用服务器根据所接收到的回调请求数据确定用于执行相应回调操作的回调线程,通过该回调线程根据该回调请求数据执行回调操作,并获取相应的回调结果,进而反馈至回调服务器。

s210,返回至通过轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至针对回调信息表中符合预设回调条件的回调数据执行的回调操作均执行完毕。

具体地,当通过轮询线程根据所接收到的回调结果在回调信息表中成功更新相应回调数据后,回调服务器通过该轮询线程返回至按照排序位置从前至后的顺序,依次将回调信息表中的每条回调数据与预设回调条件进行比较的步骤继续执行,以在该回调信息表中继续查询符合预设回调条件的回调数据并执行相应的回调操作,直至针对该回调信息表中符合预设回调条件的回调数据依次执行的回调操作执行完毕时,停止迭代,完成对异步回调指令的响应。

上述异步回调方法,获取到异步回调指令时,确定用于响应该异步回调指令的轮询线程,通过该轮询线程在预配置的回调信息表中轮询符合预设回调条件的回调数据,并针对轮询到的回调数据执行相应的回调操作,进而根据对应于回调操作的回调结果对应更新回调信息表中的回调数据。通过回调信息表统一管理回调数据,按照轮询回调信息表的方式依次查询待回调的回调数据并依次执行回调操作。这样,通过统一的回调接口即可实现对应于不同回调数据的异步回调,而无需针对不同的回调数据分别配置相应的回调接口,减少了回调接口数量,降低了管理回调接口的复杂度,从而提高了针对回调接口的管理效率。

在一个实施例中,预设回调条件包括多个预设筛选条件;步骤s204包括:从当前未用于筛选回调数据的预设筛选条件中选取单个预设筛选条件,作为当次筛选时的当前筛选条件;将当前筛选条件分别与前次筛选出的回调数据进行匹配;将与当前筛选条件相匹配的回调数据确定为当次筛选出的回调数据,并返回至从当前未用于筛选回调数据的预设筛选条件中选取单个预设筛选条件,作为当次筛选时的当前筛选条件的步骤继续执行,直至多个预设筛选条件均用于筛选回调数据。

其中,预设筛选条件是预先设定的用于筛选回调数据的条件。预设筛选条件比如回调状态为预设状态,或者,最大重试回调次数大于预设次数、且回调次数小于最大重试回调次数。预设状态比如初始状态或失败,预设次数比如0。

具体地,回调服务器本地预配置有多个预设筛选条件。回调服务器基于该多个预设筛选条件从回调信息表中筛选出符合预设回调条件的一个或多个回调数据。当前次筛选回调数据的步骤执行完毕时,回调服务器将前次筛选出的回调数据确定为当前已筛选出的回调数据,并通过轮询线程从当前未用于筛选回调数据的一个或多个预设筛选条件中选取一个预设筛选条件,作为当次筛选时的当前筛选条件。回调服务器通过轮询线程将所选取的当前筛选条件分别与当前已筛选出的回调数据进行匹配,将匹配成功的回调数据确定为当次筛选出的回调数据,并返回至从当前未用于筛选回调数据的一个或多个预设筛选条件中选取一个预设筛选条件,作为当次筛选时的当前筛选条件的步骤继续执行,直至该多个预设筛序条件均用于筛选回调数据时,停止迭代,并将与该多个预设筛选条件均匹配成功的回调数据,确定为最终筛选出的回调数据。可以理解的是,预设回调条件包括该多个预设筛选条件,故该最终筛选出的回调数据为符合预设回调条件的回调数据,且该最终筛选出的回调数据可以是一个或多个。

进一步地,当基于多个预设筛选条件最终筛选出的回调数据有多个时,回调服务器通过轮询线程根据该多个回调数据在回调信息表中各自对应的排序位置,按照排序位置从前至后的顺序依次执行相应的回调操作,并根据调用服务器对应反馈的回调结果在回调信息表中更新相应的回调数据。可以理解的是,该最终筛选出的多个回调数据各自对应的调用服务器可相同也可不同。当针对该最终筛选出的多个回调数据依次执行的回调操作均执行完毕时,回调服务器通过轮询线程基于该多个预设筛选条件,按照上述迭代筛选方式再次从回调信息表中筛选出符合预设回调条件的一个或多个回调数据,并依次执行相应的回调操作,直至在该回调信息表中没有筛选出符合该预设回调条件的回调数据。

在一个实施例中,回调服务器通过轮询线程按照排序位置从前至后的顺序,依次将回调信息表中的每个回调数据分别与该多个预设筛选条件进行匹配。在当前进行匹配的回调数据与该多个预设筛选条件均匹配成功时,回调服务器通过轮询线程将该回调数据确定为符合预设回调条件的回调数据,并按照上述回调方式执行相应的回调操作。在当前执行的回调操作执行完毕时,回调服务器通过轮询线程返回至按照排序位置从前至后的顺序,依次将回调信息表中的每个回调数据分别与该多个预设筛选条件进行匹配的步骤继续执行,直至该回调信息表中没有查询到与该多个预设筛选条件均匹配成功的回调数据。

上述实施例中,基于预配置的多个预设筛选条件,按照迭代筛选的方式从回调信息表中筛选出符合预设回调条件的一个或多个回调数据,提高了回调数据的筛选效率和筛选精准性。

在一个实施例中,回调数据包括回调请求数据、回调网络地址和回调方式;步骤s206包括:通过轮询线程根据回调网络地址确定调用服务器,并与调用服务器建立连接;通过轮询线程按照回调方式,基于连接将回调请求数据发送至回调服务器。

其中,回调请求数据是执行回调操作时所涉及的回调请求参数,回调请求数据可以是json格式(javascriptobjectnotation,轻量级数据交换格式)。回调网络地址比如回调url(uniformresourcelocator,统一资源定位符)。回调方式可包括http(hypertexttransferprotocol,超文本传输协议)和https(hypertexttransferprotocoloversecuresocketlayer,安全套接字层超文本传输协议)等。

具体地,回调服务器通过轮询线程从所查询到的回调数据中获取回调请求数据、回调网络地址和回调方式,根据所获取到的回调网络地址确定与该回调数据对应的调用服务器,并根据该回调网络地址与该调用服务器建立连接,进而通过已建立的连接,按照对应获取的回调方式将相应的回调请求数据发送至该已建立连接的调用服务器。

在一个实施例中,回调服务器通过轮询线程基于已建立的连接通过指定的统一回调接口,按照所获取的回调方式将相应的回调请求数据发送至已建立连接的调用服务器。

上述实施例中,按照回调数据所指定的回调方式将指定的回调请求数据发送至指定的调用服务器,提高了回调操作的执行效率。这样,通过简单的配置回调数据即可实现针对该回调数据的回调操作,降低了回调操作的控制复杂度。

在一个实施例中,步骤s210包括:当通过轮询线程成功更新回调数据时,使轮询线程处于休眠等待状态,并统计轮询线程的等待时长;当等待时长达到预设等待时长时,返回至通过轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至针对回调信息表中符合预设回调条件的回调数据执行的回调操作均执行完毕。

其中,预设等待时长是指通过轮询线程相邻两次在回调信息表中查询回调数据,并对应执行回调操作的时间间隔,可以根据实际情况自定义,比如1秒。在本实施例中,预设等待时长是指当前执行的回调操作执行完毕时的时间,与继续执行在回调信息表中查询符合预设回调条件的回调数据时的时间之间的时间长度。等待时长是指轮询线程处于休眠等待状态的时间长度。

具体地,当通过轮询线程根据所接收到的回调结果成功更新回调数据时,回调服务器使该轮询线程进入休眠等待状态,统计该轮询线程进入休眠等待状态的等待时长,并将统计的等待时长与预设等待时长进行比较。可以理解的是,当轮询线程进入休眠等待状态时,该轮询线程不会再执行针对回调数据的查询与回调操作。当统计的等待时长达到预设等待时长时,回调服务器通过该轮询线程返回至按照排序位置从前至后的顺序,依次将回调信息表中的每条回调数据与预设回调条件进行比较的步骤继续执行,以在该回调信息表中继续查询符合预设回调条件的回调数据并执行相应的回调操作,直至针对该回调信息表中符合预设回调条件的回调数据依次执行的回调操作执行完毕时,停止迭代,完成对异步回调指令的响应。

上述实施例中,通过预配置预设等待时长,可以有效控制相邻两次执行回调操作的时间间隔,实现了异步回调的有效统一管理,提高了管理效率。

在一个实施例中,步骤s202之前,上述异步回调方法还包括:接收调用服务器发送的调用请求;根据调用请求确定用于响应调用请求的业务线程;通过业务线程根据调用请求执行相应的调用操作;当调用操作执行完毕时,通过业务线程获取相应的回调数据,并将获取的回调数据插入预配置的回调信息表中。

其中,调用请求是用于触发调用操作的请求。业务线程是用于根据调用请求执行相应的调用操作,以实现对该调用请求的有效响应的线程。调用操作是指针对调用请求对应执行的操作,比如当调用请求为调用短信模块发送催收短信时,调用操作是指根据该调用请求调用短信模块来向用户发送催收短信。

具体地,回调服务器接收调用服务器发送的调用请求,并根据所接收到调用请求创建用于响应该调用请求的业务线程,进而通过该业务线程根据该调用请求执行相应的调用操作。当调用操作执行完毕时,回调服务器通过该业务线程获取与该调用请求对应的回调数据,并将所获取到的回调数据插入数据库中预配置的回调信息表中。可以理解的是,业务线程也可以是回调服务器根据所接收到的调用请求从线程池中获取的空闲线程。

在一个实施例中,回调服务器通过业务线程将所获取到的回调数据插入回调信息表时,获取当前系统时间作为与该回调数据对应的时间戳,并按照时间戳的先后顺序将相应的回调数据插入回调信息表中。

在一个实施例中,回调服务器接收终端发送的信息表配置指令,并根据所接收到的信息表配置指令在数据库中预配置相应的回调信息表。

上述实施例中,通过分配业务线程来执行与调用请求对应的调用操作,并通过该业务线程将对应获取、且待回调的回调数据插入预配置的回调信息表中,以便于在异步回调过程中能够直接在回调信息表中查询待回调的回调数据,并执行回调操作,提高了回调效率。

如图3所示,在一个实施例中,提供了异步回调方法,该方法具体包括以下步骤:

s302,接收调用服务器发送的调用请求。

s304,根据所述调用请求确定用于响应所述调用请求的业务线程。

s306,通过所述业务线程根据所述调用请求执行相应的调用操作。

s308,当所述调用操作执行完毕时,通过所述业务线程获取相应的回调数据,并将获取的所述回调数据插入预配置的回调信息表中。

s310,获取异步回调指令,并确定用于响应异步回调指令的轮询线程。

s312,通过轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据;回调数据包括回调请求数据、回调网络地址和回调方式。

s314,通过轮询线程根据回调网络地址确定调用服务器,并与调用服务器建立连接。

s316,通过轮询线程按照回调方式,基于连接将回调请求数据发送至回调服务器。

s318,通过轮询线程接收调用服务器对应反馈的回调结果,并根据回调结果在回调信息表中更新回调数据。

s320,当通过轮询线程成功更新回调数据时,使轮询线程处于休眠等待状态,并统计轮询线程的等待时长。

s322,当等待时长达到预设等待时长时,返回至通过轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至针对回调信息表中符合预设回调条件的回调数据执行的回调操作均执行完毕。

上述实施例中,当针对调用请求执行的调用操作执行完毕时,获取待回调的回调数据并预配置到回调信息表中,以便于在异步回调过程中,通过轮询线程轮询该回调信息表即可快速确定待回调的回调数据,并依次执行回调操作。这样,通过简单的配置即可实现多个回调数据的统一管理,以及针对该多个回调数据的有序的执行回调操作,且可通过配置统一的回调接口来实现该多个回调数据各自对应的回调操作,减少了所需配置的回调接口数量,降低了回调接口的管理复杂度,从而提高了回调接口的管理效率。

应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种异步回调装置400,包括:获取模块402、查询模块404、回调模块406、更新模块408和轮询模块410,其中:

获取模块402,用于获取异步回调指令,并确定用于响应所述异步回调指令的轮询线程。

查询模块404,用于通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据。

回调模块406,用于通过所述轮询线程根据所述回调数据确定调用服务器,并对应于所述调用服务器执行相应的回调操作。

更新模块408,用于通过所述轮询线程接收所述调用服务器对应反馈的回调结果,并根据所述回调结果在所述回调信息表中更新所述回调数据。

轮询模块410,用于返回至所述通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至针对所述回调信息表中符合预设回调条件的回调数据执行的回调操作均执行完毕。

在一个实施例中,所述预设回调条件包括多个预设筛选条件;所述查询模块404,还用于从当前未用于筛选回调数据的预设筛选条件中选取单个预设筛选条件,作为当次筛选时的当前筛选条件;将所述当前筛选条件分别与前次筛选出的回调数据进行匹配;所述查询模块404,还用于将与所述当前筛选条件相匹配的回调数据确定为当次筛选出的回调数据,并返回至所述从当前未用于筛选回调数据的预设筛选条件中选取单个预设筛选条件,作为当次筛选时的当前筛选条件的步骤继续执行,直至多个预设筛选条件均用于筛选回调数据。

在一个实施例中,所述回调数据包括回调请求数据、回调网络地址和回调方式;回调模块406,还用于通过所述轮询线程根据所述回调网络地址确定调用服务器,并与所述调用服务器建立连接;通过所述轮询线程按照所述回调方式,基于所述连接将所述回调请求数据发送至所述回调服务器。

在一个实施例中,轮询模块410,还用于当通过所述轮询线程成功更新所述回调数据时,使所述轮询线程处于休眠等待状态,并统计所述轮询线程的等待时长;当所述等待时长达到预设等待时长时,返回至所述通过所述轮询线程按照预设查询方式,在预配置的回调信息表中查询符合预设回调条件的回调数据的步骤继续执行,直至针对所述回调信息表中符合预设回调条件的回调数据执行的回调操作均执行完毕。

如图5所示,在一个实施例中,异步回调装置400,还包括:调用模块412;

调用模块412,用于接收调用服务器发送的调用请求;根据所述调用请求确定用于响应所述调用请求的业务线程;通过所述业务线程根据所述调用请求执行相应的调用操作;当所述调用操作执行完毕时,通过所述业务线程获取相应的回调数据,并将获取的所述回调数据插入预配置的回调信息表中。

关于异步回调装置的具体限定可以参见上文中对于异步回调方法的限定,在此不再赘述。上述异步回调装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预配置的回调信息表和该回调信息表中的回调数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异步回调方法。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个实施例中的异步回调方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例中的异步回调方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1