请求执行方法、装置、电子设备及存储介质制造方法及图纸

技术编号:26693979 阅读:22 留言:0更新日期:2020-12-12 02:50
本申请涉及人工智能技术领域,可应用在智慧城市各方面的系统中,从而推动智慧城市的建设。提供一种请求执行方法,包括:确定接收的访问请求所指示的多个第三方系统;对访问请求进行封装,获得多个命令请求,其中,命令请求与第三方系统一一对应;若命令请求对应的第三方系统不为熔断系统,根据第三方系统的信号量,使用第三方系统的线程池中的线程执行命令请求;若命令请求在执行过程出现异常,生成托底数据,其中,托底数据包括命令请求当前调用结果以及历史调用结果;输出托底数据。本发明专利技术还提供一种请求执行装置、电子设备及存储介质。本发明专利技术能提高系统调用的稳定性。此外,本发明专利技术还涉及区块链技术,托底数据可以存储在区块链节点中。

【技术实现步骤摘要】
请求执行方法、装置、电子设备及存储介质
本专利技术涉及计算机
,尤其涉及一种请求执行方法、装置、电子设备及存储介质。
技术介绍
目前,可以通过多个系统的调用搭配来实现各种各样的服务,但在实践中发现,各系统的调用会出现不稳定的情况,若一个系统出错,不断有请求来调用出错的系统,所有的线程资源会被占用而不能被释放,导致全部系统不可用。因此,如何提高系统调用的稳定性是一个需解决的技术问题。
技术实现思路
鉴于以上内容,有必要提供一种请求执行方法、装置、电子设备及存储介质,能够提高系统调用的稳定性。本专利技术的第一方面提供一种请求执行方法,所述请求执行方法包括:当接收到访问请求时,确定所述访问请求所指示的多个第三方系统,其中,每个第三方系统都拥有独立的线程池;对所述访问请求进行封装,获得多个命令请求,其中,所述命令请求与所述第三方系统一一对应;针对每个所述命令请求,判断所述命令请求对应的第三方系统是否为熔断系统,其中,所述第三方系统根据容错率进行熔断以及根据定时器进行恢复;若所述命令请求对应的第三方系统不为熔断系统,根据所述第三方系统的信号量,使用所述第三方系统的线程池中的线程执行所述命令请求,其中,所述信号量管理所述线程池中的线程;若所述命令请求在执行过程出现异常,生成托底数据,其中,所述托底数据包括所述命令请求当前调用结果以及历史调用结果;输出所述托底数据。在一种可能的实现方式中,所述当接收到访问请求时,确定所述访问请求所指示的多个第三方系统之前,所述请求执行方法还包括:获取每个所述第三方系统的调用记录;根据所述调用记录,确定所述第三方系统在预设时间段的容错率;判断所述容错率是否大于预设容错率阈值;若所述容错率大于预设容错率阈值,对所述第三方系统进行熔断,并将所述第三方系统确定为熔断系统;或若所述容错率小于或等于预设容错率阈值,确定所述第三方系统为正常系统。在一种可能的实现方式中,所述请求执行方法还包括:若所述命令请求对应的所述第三方系统为熔断系统,确定所述第三方系统的休眠时间,其中,所述休眠时间为当前时间与所述第三方系统最后被调用时间的差值;判断所述休眠时间是否大于预设时间阈值;若所述休眠时间大于预设时间阈值,调用所述第三方系统,获得响应结果;若所述响应结果指示所述第三方系统被成功调用,恢复所述第三方系统,使所述第三方系统为正常系统。在一种可能的实现方式中,所述根据所述第三方系统的信号量,使用所述第三方系统的线程池中的线程执行所述命令请求包括:判断所述第三方系统对应的信号量是否大于预设信号量阈值;若所述第三方系统对应的信号量大于预设信号量阈值,为所述命令请求分配信号,并从所述第三方系统的线程池中选取与所述信号对应的线程来执行所述命令请求,其中,所述信号用于指示所述命令请求能够获得所述第三方系统的线程资源;或若所述第三方系统对应的信号量小于或等于预设信号量阈值,拒绝执行所述命令请求。在一种可能的实现方式中,所述请求执行方法还包括:判断所述第三方系统对应的线程池的所有线程中是否存在闲置线程;若所述第三方系统对应的线程池的所有线程中不存在闲置线程,拒绝所有请求调用所述第三方系统;或若所述第三方系统对应的线程池的所有线程中存在闲置线程,允许请求调用所述第三方系统。在一种可能的实现方式中,所述根据所述第三方系统的信号量,使用所述第三方系统的线程池中的线程执行所述命令请求之后,以及所述若所述命令请求在执行过程出现异常,生成托底数据之前,所述请求执行方法还包括:确定所述命令请求对应的执行时间;判断所述执行时间是否大于预设时间阈值;若所述执行时间大于预设时间阈值,停止执行所述命令请求;或若所述执行时间小于或等于预设时间阈值,继续执行所述命令请求。在一种可能的实现方式中,所述输出所述托底数据之后,所述请求执行方法还包括:生成所述命令请求对应的出错提示信息;输出所述出错提示信息。本专利技术的第二方面提供一种请求执行装置,所述请求执行装置包括:确定模块,用于当接收到访问请求时,确定所述访问请求所指示的多个第三方系统,其中,每个第三方系统都拥有独立的线程池;封装模块,用于对所述访问请求进行封装,获得多个命令请求,其中,所述命令请求与所述第三方系统一一对应;判断模块,用于针对每个所述命令请求,判断所述命令请求对应的第三方系统是否为熔断系统,其中,所述第三方系统根据容错率进行熔断以及根据定时器进行恢复;执行模块,用于若所述命令请求对应的第三方系统不为熔断系统,根据所述第三方系统的信号量,使用所述第三方系统的线程池中的线程执行所述命令请求,其中,所述信号量管理所述线程池中的线程;生成模块,用于若所述命令请求在执行过程出现异常,生成托底数据,其中,所述托底数据包括所述命令请求当前调用结果以及历史调用结果;输出模块,用于输出所述托底数据。本专利技术的第三方面提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的请求执行方法。本专利技术的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的请求执行方法。由以上技术方案,本专利技术中,可以为每个第三方系统维护一个线程池,做资源隔离,确保一个系统繁忙时,其他系统也有资源可以使用,并通过信号量保障了多并发时系统的稳定服务,确保其他系统正常运行,并可以通过熔断机制停用有问题的系统,避免有问题的系统不停调用其他系统从而导致其他系统崩溃,同时,若运行的系统出现了异常,可以生成并输出托底数据,确保当前请求可以获得底限度的响应,提高了系统调用的稳定性。附图说明图1是本专利技术公开的一种请求执行方法的较佳实施例的流程图。图2是本专利技术公开的一种请求执行装置的较佳实施例的功能模块图。图3是本专利技术实现请求执行方法的较佳实施例的电子设备的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。除非另有定义,本文所使用的所有的技术和科学术语与属于本专利技术的
的技术人员通常理解的含义相同。本文中在本专利技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本专利技术。本专利技术实施例的请求执行方法应用在电子设备中,也可以应用在电子设备和通过网络与所述电子设备进行连接的服务器所构成的硬件环境中,由服务器和电子设备共同执行。网络包括但不限于:广域网、城域网或局域网。其中,服务器可以是指本文档来自技高网
...

【技术保护点】
1.一种请求执行方法,其特征在于,所述请求执行方法包括:/n当接收到访问请求时,确定所述访问请求所指示的多个第三方系统,其中,每个第三方系统都拥有独立的线程池;/n对所述访问请求进行封装,获得多个命令请求,其中,所述命令请求与所述第三方系统一一对应;/n针对每个所述命令请求,判断所述命令请求对应的第三方系统是否为熔断系统,其中,所述第三方系统根据容错率进行熔断以及根据定时器进行恢复;/n若所述命令请求对应的第三方系统不为熔断系统,根据所述第三方系统的信号量,使用所述第三方系统的线程池中的线程执行所述命令请求,其中,所述信号量管理所述线程池中的线程;/n若所述命令请求在执行过程出现异常,生成托底数据,其中,所述托底数据包括所述命令请求当前调用结果以及历史调用结果;/n输出所述托底数据。/n

【技术特征摘要】
1.一种请求执行方法,其特征在于,所述请求执行方法包括:
当接收到访问请求时,确定所述访问请求所指示的多个第三方系统,其中,每个第三方系统都拥有独立的线程池;
对所述访问请求进行封装,获得多个命令请求,其中,所述命令请求与所述第三方系统一一对应;
针对每个所述命令请求,判断所述命令请求对应的第三方系统是否为熔断系统,其中,所述第三方系统根据容错率进行熔断以及根据定时器进行恢复;
若所述命令请求对应的第三方系统不为熔断系统,根据所述第三方系统的信号量,使用所述第三方系统的线程池中的线程执行所述命令请求,其中,所述信号量管理所述线程池中的线程;
若所述命令请求在执行过程出现异常,生成托底数据,其中,所述托底数据包括所述命令请求当前调用结果以及历史调用结果;
输出所述托底数据。


2.根据权利要求1所述的请求执行方法,其特征在于,所述当接收到访问请求时,确定所述访问请求所指示的多个第三方系统之前,所述请求执行方法还包括:
获取每个所述第三方系统的调用记录;
根据所述调用记录,确定所述第三方系统在预设时间段的容错率;
判断所述容错率是否大于预设容错率阈值;
若所述容错率大于预设容错率阈值,对所述第三方系统进行熔断,并将所述第三方系统确定为熔断系统;或
若所述容错率小于或等于预设容错率阈值,确定所述第三方系统为正常系统。


3.根据权利要求1所述的请求执行方法,其特征在于,所述请求执行方法还包括:
若所述命令请求对应的所述第三方系统为熔断系统,确定所述第三方系统的休眠时间,其中,所述休眠时间为当前时间与所述第三方系统最后被调用时间的差值;
判断所述休眠时间是否大于预设时间阈值;
若所述休眠时间大于预设时间阈值,调用所述第三方系统,获得响应结果;
若所述响应结果指示所述第三方系统被成功调用,恢复所述第三方系统,使所述第三方系统为正常系统。


4.根据权利要求1所述的请求执行方法,其特征在于,所述根据所述第三方系统的信号量,使用所述第三方系统的线程池中的线程执行所述命令请求包括:
判断所述第三方系统对应的信号量是否大于预设信号量阈值;
若所述第三方系统对应的信号量大于预设信号量阈值,为所述命令请求分配信号,并从所述第三方系统的线程池中选取与所述信号对应的线程来执行所述命令请求,其中,所述信号用于指示所述命令请求能够获得所述第三方系统的线程资源;或
若所述第三方系统对应的信号量小于或等于预设信号量阈值,拒绝执行所述命令请求。

...

【专利技术属性】
技术研发人员:田鹏
申请(专利权)人:中国平安财产保险股份有限公司
类型:发明
国别省市:广东;44

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

1