[发明专利]一种并发处理API请求的方法及系统有效

专利信息
申请号: 201711395321.6 申请日: 2017-12-21
公开(公告)号: CN108089919B 公开(公告)日: 2021-01-15
发明(设计)人: 向阳;金捷 申请(专利权)人: 北京云杉世纪网络科技有限公司
主分类号: G06F9/48 分类号: G06F9/48;G06F9/50
代理公司: 北京路浩知识产权代理有限公司 11002 代理人: 王莹;李相雨
地址: 100083 北京市海*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 并发 处理 api 请求 方法 系统
【说明书】:

发明提供一种并发处理API请求的方法及系统,所述方法包括:S1,若当前API请求对应的当前任务包括I/O操作,则使用当前服务协程生成所述当前任务的第一三元组;S2,当所述当前服务协程异步等待时间达到预设时长时,将所述主线程的调度逻辑切换到满足预设条件的其他服务协程,获取所述其他服务协程生成的第二三元组;S3,根据所述第一三元组中当前任务的保序标识符和所述第二三元组中其他任务的保序标识符,使用调度线程将所述当前任务和所述其他任务分配到等待队列中;S4,使用任务处理线程对当前任务和其他任务进行处理,将处理结果保存到第一三元组和第二三元组的请求结果队列中。本发明实现了对API请求的保序高并发处理。

技术领域

本发明属于网络通信技术领域,更具体地,涉及一种并发处理API请求的方法及系统。

背景技术

大型软件系统为了实现扩展性、模块解耦和代码重用,一般采用面向服务的架构,即整个软件系统由提供各种不同服务的API模块组成。最初的API服务架构由单进程和单线程实现。为了提高服务的并发能力,通常会使用多进程、多线程或协程的方式实现。

多进程架构的问题在于进程间通信的复杂性,难以维护全局资源锁,且线程上下文切换带来资源开销。此外,多进程和多线程架构都面临无法保序响应API请求的问题。例如,当对于同一个资源对象的不同API请求先后到达时,API服务端由于缺乏上下文切换控制机制和请求排队机制,进程及线程完全由CPU随机调度,可能导致后到达的API先执行或并发交替执行,执行结果违背API调用者的初衷。这样的情况在I/O(Input/Output,输入/输出)过程密集的情况下更为突出,例如对于改变某个资源状态的耗时API,连续调用两次API后该资源的最终状态是无法预知的。

协程架构由程序员控制操作逻辑的切换,但当异步IO较多时,精细控制切换逻辑对程序员的要求很高,容易出错。另外,已有的大量代码、程序、第三方库等并不支持异步IO,不能被协程调用,也使得协程架构经常丧失并发能力。

因此,如何在保证API服务高并发能力的同时,支持对API请求的保序处理成为当前亟需解决的问题。

发明内容

为克服上述不能同时实现API请求的高并发处理和保序处理的问题或者至少部分地解决上述问题,本发明提供了一种并发处理API请求的方法及系统。

根据本发明的第一方面,提供一种并发处理API请求的方法,包括:

S1,若当前API请求对应的当前任务包括I/O操作,则使用当前服务协程生成所述当前任务的第一三元组,所述当前服务协程是在主线程中为所述当前API请求预先创建的;

S2,当所述当前服务协程异步等待时间达到预设时长时,将所述主线程的调度逻辑切换到满足预设条件的其他服务协程,获取所述其他服务协程生成其他API请求对应的其他任务的第二三元组;

S3,根据所述第一三元组中当前任务的保序标识符和所述第二三元组中其他任务的保序标识符,使用预先创建的调度线程将所述当前任务和所述其他任务分配到各等待队列中;

S4,使用预先创建的任务处理线程对所述各等待队列中的当前任务和其他任务进行处理,将处理结果保存到所述第一三元组和所述第二三元组中的请求结果队列中,所述任务处理线程与所述等待队列一一对应。

具体地,所述步骤S1之前还包括:

在API服务启动时,创建一个调度线程、预设数量的等待队列和所述预设数量的任务处理线程;

当当前API请求到达主线程时,在所述主线程中为所述当前API请求创建一个当前服务协程。

具体地,所述步骤S1还包括:

若所述当前API请求对应的所述当前任务不包括I/O操作,则使用所述当前服务协程执行所述当前任务。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京云杉世纪网络科技有限公司,未经北京云杉世纪网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711395321.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top