【技术实现步骤摘要】
本专利技术涉及互联网领域,具体涉及一种多接口数据的调度方法。
技术介绍
网站在逐步发展的过程中,每个页面随着业务越来越多,需要的额外数据会越来越多,这些数据往往有各自原生的信息来源,比如数据库、内存、文件,为了让开发更高效,大多数公司中往往会用封装的方式各自封装这些原生的信息来源,每个封装好后的消息来源也叫接口,并且这些接口往往不在一台服务器上,所以每个页面在获得数据的时候,会向多个服务器上的接口请求获得想要的数据。一个页面要展示某些业务要分别请求各种业务提供数据的接口,会有这样几种方式:(1)完全从后台请求数据用户打开页面,向后台发起请求,由后台程序向所有的数据接口发送获取请求,然后打包发送给前台,之后再由前台再负责展示,这种方式下若有一个接口发生问题,会发生多米诺效应,导致整个后台瘫痪,这种问题在一些暂时不支持多线程开发的PHP程序中很常见,接口多时往往不会用这种方法;(2)完全由前台发送AJAX请求接口获得数据用户打开页面,不通过后台,完全由前台发送AJAX请求接口获得数据,最终通过回调函数展现业务逻辑,完全不用后台,但是这种方式由于安全问题并不常用。此外,全部由前台发送请求,如果业务需求请求数量多,或者有相互依赖的情况时,机器配置低的浏览器会因为请求数量过多而出现卡顿很久的现象。(3)前后台混合方式:由后台请求核心业务接口优先展示核心业务,前端发送AJAX使用回调函数展示非核心业务,目前这种方式最为常见。但是,这种方式核心业务的接口一般数据量比较大耗时很长,并发利用率不高;而非核心业务推到前台建立AJAX请求,一旦非核心业务数量过多,前台在处理这 ...
【技术保护点】
一种多接口数据的调度方法,包括对于处理核心业务的核心接口和处理非核心业务的非核心接口进行调度,其特征在于,包括以下步骤:S1.为接口分类,并将分类后的接口纳入相应的容器:将能够被直接调度的核心接口纳入核心接口容器,将不能够被直接调度的核心接口纳入有依赖核心接口容器,将能够被直接调度的非核心接口纳入非核心接口容器,将不能够被直接调度的非核心接口纳入有依赖非核心接口容器;S2.获取HTTP请求中的页面参数;S3.根据所述页面参数更新有依赖核心接口容器、核心接口容器、非核心接口容器和有依赖非核心接口容器;S4.对所述核心接口容器和所述非核心接口容器中的未被调度过的接口进行并发调用;S5.根据S4的调用结果,向前端发送数据;S6.前端展示S5中接口的调用结果,并判断是否存在待处理的非核心接口,若存在,则对所述非核心接口进行调用;S7.向前端展示S6中接口的调用结果,并判断是否存在待处理的非核心接口,若存在,继续对所述非核心接口进行调用,并将调度结果显示在前端。
【技术特征摘要】
1.一种多接口数据的调度方法,包括对于处理核心业务的核心接口和处理非核心业务的非核心接口进行调度,其特征在于,包括以下步骤:S1.为接口分类,并将分类后的接口纳入相应的容器:将能够被直接调度的核心接口纳入核心接口容器,将不能够被直接调度的核心接口纳入有依赖核心接口容器,将能够被直接调度的非核心接口纳入非核心接口容器,将不能够被直接调度的非核心接口纳入有依赖非核心接口容器;S2.获取HTTP请求中的页面参数;S3.根据所述页面参数更新有依赖核心接口容器、核心接口容器、非核心接口容器和有依赖非核心接口容器;S4.对所述核心接口容器和所述非核心接口容器中的未被调度过的接口进行并发调用;S5.根据S4的调用结果,向前端发送数据;S6.前端展示S5中接口的调用结果,并判断是否存在待处理的非核心接口,若存在,则对所述非核心接口进行调用;S7.向前端展示S6中接口的调用结果,并判断是否存在待处理的非核心接口,若存在,继续对所述非核心接口进行调用,并将调度结果显示在前端。2.根据权利要求1所述的一种多接口数据的调度方法,其特征在于,S3中更新有依赖核心接口容器、核心接口容器、非核心接口容器和有依赖非核心接口容器包括:在已知所述页面参数的前提下,遍历有依赖核心接口容器和有依赖非核心接口容器,若有依赖核心接口容器中存在能够被直接调度的核心接口,则将所述能够被直接调度的核心接口移至所述核心接口容器,若有依赖非核心接口容器中存在能够被直接调度的非核心接口,则将所述能够被直接调度的非核心接口移至所述非核心接口容器。3.根据权利要求2所述的一种多接口数据的调度方法,其特征在于,S4包括:S41.开启线程并行调度所述核心接口容器和非核心接口容器中的未被调度过的接口;S42.若获取响应,则判断是否为成功响应,若是,则进行S43,若否,则直接停止所有用于接口调度的线程,直接返回HTTP响应:报文状态502服务器问题或307跳转到对应的页面;S43.将获取所述响应的接口标记为已调度接口,查询所述响应结果是否是有依赖核心接口容器和/或有依赖非核心接口容器中的接口所需要的待定参数,如果是,则进行S44,否则,进行S46;S44.用所述响应结果替代所述待定参数,并在所述待定参数已知的前提下,判断需要所述待定参数的接口是...
【专利技术属性】
技术研发人员:史荣琦,邢斐,董京涛,李明杰,顾思斌,潘柏宇,谢菲,
申请(专利权)人:合一信息技术北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。