基于线程与协程调度的数据同步方法、系统和存储介质技术方案

技术编号:35784270 阅读:19 留言:0更新日期:2022-12-01 14:31
本申请提供一种基于线程与协程调度的数据同步方法、系统和存储介质,基于线程与协程调度的数据同步方法包括:获取数据同步任务的执行请求;当所述数据同步任务满足第一预设条件,则申请线程以执行所述数据同步任务;或,当所述数据同步任务满足第二预设条件,则申请协程以执行所述数据同步任务。本申请提供的基于线程与协程调度的数据同步方法、系统和存储介质通过对线程与协程的灵活调度,提高系统资源的利用率和数据同步的效率。的利用率和数据同步的效率。的利用率和数据同步的效率。

【技术实现步骤摘要】
基于线程与协程调度的数据同步方法、系统和存储介质


[0001]本申请涉及数据同步
,具体涉及一种基于线程与协程调度的数据同步方法、系统和存储介质。

技术介绍

[0002]数据同步平台提供给企业所有的信息化系统使用,将这些信息化系统的数据通过各种方式从一个地方采集到数据同步平台,这就是数据采集的过程,然后通过各种方式将已经采集到的数据分发到不同的地方去,这就是数据分发的过程,在数据采集和数据分发过程中,会存在大量的数据转换和处理逻辑。这些数据来源复杂、种类繁多、数量巨大、处理逻辑各不相同,并且大多要求数据同步平台做到准实时、高性能、高吞吐量。在数据同步平台中,会使用大量的线程池,例如数据监听线程池、数据采集线程池、数据处理线程池等,在数据同步的高峰期,数据同步平台的单个计算机节点会同时运行上百个线程池、上千个线程。
[0003]在构思及实现本申请过程中,专利技术人发现至少存在如下问题:数据同步平台现有线程池模型会导致很多资源浪费在线程运行状态切换及线程上下文切换之上;线程数太多导致卡顿、阻塞,甚至崩溃的现象,从而让整个数据同步平台处于不可用的状态。
[0004]前面的叙述在于提供一般的背景信息,并不一定构成现有技术。

技术实现思路

[0005]本申请提供一种基于线程与协程调度的数据同步方法、系统和存储介质,用于缓解数据同步效率低和系统资源利用率低的问题。
[0006]在一方面,本申请提供一种基于线程与协程调度的数据同步方法,具体地,包括:
[0007]获取数据同步任务的执行请求;
[0008]当所述数据同步任务满足第一预设条件,则申请线程以执行所述数据同步任务;或,当所述数据同步任务满足第二预设条件,则申请协程以执行所述数据同步任务。
[0009]可选地,所述基于线程与协程调度的数据同步方法在执行所述获取数据同步任务的执行请求的步骤之前包括以下至少一项:
[0010]建立线程池以纳入申请的每个线程,建立协程池以纳入申请的每个协程;
[0011]收集系统指标,所述系统指标包括CPU使用率、IO使用率、正在运行的线程数和正在运行的协程数;
[0012]收集任务指标,所述任务指标包括任务历史的CPU使用率平均值和任务历史的IO使用率平均值;
[0013]收集线程指标,所述线程指标包括线程实时的CPU使用率和线程实时的IO使用率;
[0014]收集协程指标,所述协程指标包括协程实时的CPU使用率和协程实时的IO使用率。
[0015]可选地,所述基于线程与协程调度的数据同步方法中的所述第一预设条件包括以下至少一项:
[0016]所述任务历史的CPU使用率平均值大于或等于第一阈值;
[0017]所述任务历史的IO使用率平均值小于第二阈值;
[0018]所述CPU使用率小于第三阈值;
[0019]所述IO使用率大于或等于第四阈值;
[0020]不满足所述第二预设条件。
[0021]可选地,所述基于线程与协程调度的数据同步方法中的所述第二预设条件包括以下至少一项:
[0022]所述任务历史的CPU使用率平均值小于所述第一阈值;
[0023]所述任务历史的IO使用率平均值大于或等于所述第二阈值;
[0024]所述CPU使用率大于或等于所述第三阈值;
[0025]所述IO使用率小于所述第四阈值;
[0026]不满足所述第一预设条件。
[0027]可选地,所述基于线程与协程调度的数据同步方法在执行所述当所述数据同步任务满足第一预设条件,则申请线程以执行所述数据同步任务;或,当所述数据同步任务满足第二预设条件,则申请协程以执行所述数据同步任务的步骤之后包括:
[0028]响应于所述CPU使用率大于或等于第五阈值,读取所述系统指标;
[0029]根据所述系统指标,当所述线程数大于或等于第六阈值和/或所述协程数小于第七阈值时,遍历正在运行的线程,读取所述线程指标;
[0030]当至少一线程的所述线程指标满足第三预设条件时,将所述至少一线程切换为协程。
[0031]可选地,所述基于线程与协程调度的数据同步方法在执行所述当至少一线程的所述线程指标满足第三预设条件时,将所述至少一线程切换为协程的步骤包括:
[0032]当所述至少一线程的线程实时的CPU使用率小于第八阈值时,将所述至少一线程切换为协程;和/或,
[0033]当所述至少一线程的线程实时的IO使用率大于或等于第九阈值时,将所述至少一线程切换为协程。
[0034]可选地,所述基于线程与协程调度的数据同步方法在执行所述当所述数据同步任务满足第一预设条件,则申请线程以执行所述数据同步任务;或,当所述数据同步任务满足第二预设条件,则申请协程以执行所述数据同步任务的步骤之后包括:
[0035]响应于所述CPU使用率小于第十阈值,读取所述系统指标;
[0036]根据所述系统指标,当所述线程数小于第十一阈值和/或所述协程数大于或等于第十二阈值时,遍历正在运行的协程,读取所述协程指标;
[0037]当至少一协程的协程指标满足第四预设条件时,将所述至少一协程切换为线程。
[0038]可选地,所述基于线程与协程调度的数据同步方法在执行所述当至少一协程的协程指标满足第四预设条件时,将所述至少一协程切换为线程的步骤包括:
[0039]当所述至少一协程的协程实时的CPU使用率大于或等于第八阈值时,将所述至少一协程切换为线程;和/或,
[0040]当所述至少一协程的协程实时的IO使用率小于第九阈值时,将所述至少一协程切换为线程。
[0041]另一方面,本申请提供一种数据同步系统,具体地,
[0042]所述数据同步系统包括互相连接的处理器和存储介质,其中:
[0043]所述存储介质用于存储计算机程序;
[0044]所述处理器用于执行所述计算机程序,以实现如上所述的基于线程与协程调度的数据同步方法。
[0045]另一方面,本申请提供一种存储介质,具体地,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于线程与协程调度的数据同步方法。
[0046]如上所述,本申请提供的基于线程与协程调度的数据同步方法、系统和存储介质通过对线程与协程的灵活调度,提高系统资源的利用率和数据同步的效率。
附图说明
[0047]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0048]图1为本申请一实施例的基于线程与协程调度的数据同步方法的流程图。
[0049]图2为本申请一实施例的基于线程与协程调度的数据同步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于线程与协程调度的数据同步方法,其特征在于,包括:获取数据同步任务的执行请求;当所述数据同步任务满足第一预设条件,则申请线程以执行所述数据同步任务;或,当所述数据同步任务满足第二预设条件,则申请协程以执行所述数据同步任务。2.根据权利要求1所述的基于线程与协程调度的数据同步方法,其特征在于,所述获取数据同步任务的执行请求的步骤之前包括以下至少一项:建立线程池以纳入申请的每个线程,建立协程池以纳入申请的每个协程;收集系统指标,所述系统指标包括CPU使用率、IO使用率、正在运行的线程数和正在运行的协程数;收集任务指标,所述任务指标包括任务历史的CPU使用率平均值和任务历史的IO使用率平均值;收集线程指标,所述线程指标包括线程实时的CPU使用率和线程实时的IO使用率;收集协程指标,所述协程指标包括协程实时的CPU使用率和协程实时的IO使用率。3.根据权利要求2所述的基于线程与协程调度的数据同步方法,其特征在于,所述第一预设条件包括以下至少一项:所述任务历史的CPU使用率平均值大于或等于第一阈值;所述任务历史的IO使用率平均值小于第二阈值;所述CPU使用率小于第三阈值;所述IO使用率大于或等于第四阈值;不满足所述第二预设条件。4.根据权利要求3所述的基于线程与协程调度的数据同步方法,其特征在于,所述第二预设条件包括以下至少一项:所述任务历史的CPU使用率平均值小于所述第一阈值;所述任务历史的IO使用率平均值大于或等于所述第二阈值;所述CPU使用率大于或等于所述第三阈值;所述IO使用率小于所述第四阈值;不满足所述第一预设条件。5.根据权利要求2所述的基于线程与协程调度的数据同步方法,其特征在于,所述当所述数据同步任务满足第一预设条件,则申请线程以执行所述数据同步任务;或,当所述数据同步任务满足第二预设条件,则申请协程以执行所述数据同步任务的步骤之后包括:响应于所述CPU使用率大于或等于第五阈值,读取所述系统指标;根据所述系统指标,当所述线程数大于或等于第六阈值和/或所述协程数小于第七阈值时,遍历正在运行的线程,读...

【专利技术属性】
技术研发人员:贺庆江苏文鸽江谷强龚涛易超
申请(专利权)人:中科云谷科技有限公司
类型:发明
国别省市:

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

1