一种业务回调服务的控制方法、装置、系统及存储介质制造方法及图纸

技术编号:35031587 阅读:13 留言:0更新日期:2022-09-24 23:06
本发明专利技术提供了一种业务回调服务的控制方法、装置、系统及存储介质,其中所述方法包括:服务提供端接收到业务端发出的业务请求后,向回调系统发送与业务请求对应的回调请求;回调系统接收到所述回调请求后,将回调请求存入内存队列中;回调系统通过回调线程池,根据内存队列中的回调请求,对所述回调地址对应的业务端执行回调任务。本发明专利技术通过设置一独立的回调系统,独立处理回调服务,将回调请求存入内存队列中,并根据回调线程池对业务端进行执行回调任务。本发明专利技术所提供的回调服务的实现方式中,业务端和服务提供端均无需进行回调服务的处理,而只需回调系统独立处理,方法简单,能够保证高性能性、高可用性和高稳定性。高可用性和高稳定性。高可用性和高稳定性。

【技术实现步骤摘要】
一种业务回调服务的控制方法、装置、系统及存储介质


[0001]本专利技术涉及业务回调
,更具体地说,涉及一种业务回调服务的控制方法、装置、系统及存储介质。

技术介绍

[0002]系统中,很多业务场景处理耗时较长,所以一般将业务执行异步化,从而减轻客户端的等待压力。
[0003]但由于异步化或任务化,必然涉及到一个完成时间点的感知问题,而最简单和直接的方法是使用回调和主动轮询的方法。其中,主动轮询的方式会加大调用方的实现难度,而回调服务则可以及时有效地告知相关方,从而使其可以推进下一步的操作。因此,实现一个稳定可靠的回调,就变得非常重要。
[0004]常规的回调实现方式中,一般是在任务执行成功之后直接进行同步回调,这种实现方式往往带来较多问题。一方面,客户端会需要自己关注大量的异常情况及其处理,如客户端必须要使用推拉方式结合,方能完成一个基础功能;另一方面,需要增加很多的复杂的逻辑方法于业务代码中,导致整体系统逻辑耦合比较严重。
[0005]总之,现有的回调服务实现方式中,需要客户端自己关注大量异常情况及其处理,并且业务代码中需要增加很多的复杂的逻辑方法,造成系统逻辑耦合严重。

技术实现思路

[0006]有鉴于此,本专利技术提供一种业务回调服务的控制方法,包括:
[0007]服务提供端接收到业务端发出的业务请求后,向回调系统发送与所述业务请求对应的回调请求;其中,所述回调请求包括所述业务端对应的回调地址;
[0008]所述回调系统接收到所述回调请求后,将所述回调请求存入内存队列中;
[0009]所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行回调任务。
[0010]优选地,所述将所述回调请求存入内存队列中之前,还包括:
[0011]所述回调系统接收到所述回调请求后,将所述回调请求插入数据库中,并赋予待处理的执行状态标签;
[0012]所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行回调任务之后,还包括:
[0013]所述回调系统的所述回调任务执行完成之后,将所述执行状态标签变更为回调成功。
[0014]优选地,所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行回调任务,包括:
[0015]所述回调系统判断所述回调线程池中的执行线程的数量是否已达到预设最大数量;
[0016]若是,则将所述执行状态标签变更为等待调度,并根据所述等待调度的执行状态标签将所述回调请求挂起;
[0017]若否,则将所述回调请求插入所述回调线程池的执行线程内,以便于根据所述执行线程中的所述回调请求对所述业务端执行回调任务。
[0018]优选地,所述回调线程池中,所述执行线程的所述预设最大数量的计算方法为:
[0019]预设最大数量=系统并发度
×
每秒可执行回调任务数
×
预设可接受延迟时间。
[0020]优选地,所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行回调任务之后,还包括:
[0021]所述回调系统获取所述服务提供端根据所述业务端的业务请求的执行情况所返回的响应信息;
[0022]若所述响应信息为业务执行成功,则判定执行状态为回调任务执行完成,以便于将所述执行状态标签变更为回调成功。
[0023]优选地,所述回调系统获取所述服务提供端根据所述业务端的业务请求的执行情况所返回的响应信息之后,还包括:
[0024]若所述响应信息并非为业务执行成功,则判定执行状态为回调任务执行异常;
[0025]所述回调系统接收所述服务提供端根据所述业务端的业务请求的执行情况所返回重复回调指令,以便于根据所述重复回调指令对所述业务端执行回调任务。
[0026]优选地,所述回调系统接收所述服务提供端根据所述业务端的业务请求的执行情况所返回重复回调指令之后,还包括:
[0027]所述回调系统根据预设的所述回调任务执行异常的执行状态的次数与时间的对应关系,获取与所述回调任务执行异常的执行状态的次数对应的当前次的时间间隔;
[0028]所述回调系统根据所述当前次的时间间隔对所述业务端执行回调任务,并返回执行所述回调系统获取所述服务提供端根据所述业务端的业务请求的执行情况所返回的响应信息;
[0029]其中,所述当前次的时间间隔大于前一次的时间间隔。
[0030]优选地,所述业务回调服务的控制还包括:
[0031]所述回调系统接收平台的关机/重启指令;
[0032]接收到所述关机/重启指令后,所述回调系统获取所述内存队列中的回调请求,并将所述内存队列中的回调请求存入数据库中成一数据包,并对所述数据包设置一待分配状态标签,以便于所述回调系统根据所述待分配状态标签获取所述数据库中的所述数据包至所述内存队列中。
[0033]优选地,所述回调系统根据随机休眠时间作为启动时间间隔,启动扫描守护线程;
[0034]所述回调系统基于所述扫描守护线程判断所述数据库中是否存在与所述回调系统对应且所述状态标签为待处理的数据包;
[0035]若是,则所述回调系统调取所述数据包至所述内存队列中,删除所述待分配状态标签。
[0036]优选地,所述回调系统接收到所述回调请求后,将所述回调请求存入内存队列中之前,还包括:
[0037]所述回调系统对所接收到所述回调请求设定一对应的回调ID;
[0038]所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行回调任务,还包括:
[0039]所述回调系统通过所述回调线程池中的所述回调请求,向所述业务端发送与所述回调任务对应的回调信息;其中所述回调信息中包括所述回调ID;
[0040]所述业务端接收到所述回调信息后,获取所述回调信息对应的回调ID;
[0041]所述业务端判断所述回调ID是否与先前已经接收到的回调信息的回调ID相同;
[0042]若是,则判定当前所接收到的所述回调信息为无效回调;
[0043]若否,则判定当前所接收到的所述回调信息为有效回调,并根据所述回调信息向所述回调系统返回一对应的有效回调响应信息。
[0044]此外,为解决上述问题,本专利技术还提供一种业务回调服务的控制装置,包括:
[0045]请求模块,用于服务提供端接收到业务端发出的业务请求后,向回调系统发送与所述业务请求对应的回调请求;其中,所述回调请求包括所述业务端对应的回调地址;
[0046]存储模块,用于所述回调系统接收到所述回调请求后,将所述回调请求存入内存队列中;
[0047]执行模块,用于所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种业务回调服务的控制方法,其特征在于,包括:服务提供端接收到业务端发出的业务请求后,向回调系统发送与所述业务请求对应的回调请求;其中,所述回调请求包括所述业务端对应的回调地址;所述回调系统接收到所述回调请求后,将所述回调请求存入内存队列中;所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行回调任务。2.如权利要求1所述业务回调服务的控制方法,其特征在于,所述将所述回调请求存入内存队列中之前,还包括:所述回调系统接收到所述回调请求后,将所述回调请求插入数据库中,并赋予待处理的执行状态标签;所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行回调任务之后,还包括:所述回调系统的所述回调任务执行完成之后,将所述执行状态标签变更为回调成功。3.如权利要求2所述业务回调服务的控制方法,其特征在于,所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行回调任务,包括:所述回调系统判断所述回调线程池中的执行线程的数量是否已达到预设最大数量;若是,则将所述执行状态标签变更为等待调度,并根据所述等待调度的执行状态标签将所述回调请求挂起;若否,则将所述回调请求插入所述回调线程池的执行线程内,以便于根据所述执行线程中的所述回调请求对所述业务端执行回调任务。4.如权利要求3所述业务回调服务的控制方法,其特征在于,所述回调线程池中,所述执行线程的所述预设最大数量的计算方法为:预设最大数量=系统并发度
×
每秒可执行回调任务数
×
预设可接受延迟时间。5.如权利要求2所述业务回调服务的控制方法,其特征在于,所述回调系统通过回调线程池,根据所述内存队列中的所述回调请求,对所述回调地址对应的所述业务端执行回调任务之后,还包括:所述回调系统获取所述服务提供端根据所述业务端的业务请求的执行情况所返回的响应信息;若所述响应信息为业务执行成功,则判定执行状态为回调任务执行完成,以便于将所述执行状态标签变更为回调成功。6.如权利要求5所述业务回调服务的控制方法,其特征在于,所述回调系统获取所述服务提供端根据所述业务端的业务请求的执行情况所返回的响应信息之后,还包括:若所述响应信息并非为业务执行成功,则判定执行状态为回调任务执行异常;所述回调系统接收所述服务提供端根据所述业务端的业务请求的执行情况所返回重复回调指令,以便于根据所述重复回调指令对所述业务端执行回调任务。7.如权利要求6所述业务回调服务的控制方法,其特征在于,所述回调系统接收所述服务提供端根据所述业务端的业务请求的执行情况所返回重复回调指令之后,还包括:所述回调系统根据预设的所述回调任务执行异常的执行状态的次数与时间的对应关
系,获取与所述回调任务执行异常的执行状态的次数对应的当前次的时间间隔;所述回调系统根据所述当前次的时间间隔对所述业务端执行回...

【专利技术属性】
技术研发人员:魏勇
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

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

1