CN114003376A - 基于多线程的自动化任务分解调度系统及实现方法 - Google Patents
基于多线程的自动化任务分解调度系统及实现方法 Download PDFInfo
- Publication number
- CN114003376A CN114003376A CN202111231030.XA CN202111231030A CN114003376A CN 114003376 A CN114003376 A CN 114003376A CN 202111231030 A CN202111231030 A CN 202111231030A CN 114003376 A CN114003376 A CN 114003376A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- strategy
- tasks
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000354 decomposition reaction Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 77
- 230000001360 synchronised effect Effects 0.000 claims abstract description 9
- 238000009826 distribution Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000013468 resource allocation Methods 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 4
- 239000003999 initiator Substances 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于多线程的自动化任务分解调度系统及实现方法,属于任务调度技术领域,本发明要解决的技术问题为如何降低多线程编程复杂度,屏蔽多线程实现细节,提高系统健壮性和安全性,同时降低任务分解复杂度,保证拆分工作任务时数据集的均衡性,减少任务总体耗时,采用的技术方案为:该系统包括,任务处理资源池模块,用于作为用户任务的接入层,提供同步接口服务及异步接口服务;用户任务接口模块,用于定义用户发起任务必须实现的业务逻辑;任务管理器模块,用于任务声明周期管理;基础组件服务模块,用于具体任务执行;数据拆分策略模块,用于保证拆分工作任务时,数据集的均衡性。
Description
技术领域
本发明涉及任务调度技术领域,具体地说是一种基于多线程的自动化任务分解调度系统及实现方法。
背景技术
随着互联网技术的不断发展,用户对影响延迟的要求越来越高。很多基于B/S架构的传统web应用,面临数据处理耗时长,异步处理代价高问题,逐步凸显。大批量数据处理,耗时长,影响用户感知。现有批量数据处理方案一般采用多线程并发的处理方式,技术人员面临多线程编程复杂,门槛高,同时线程池配置不合理导致内存溢出等线上问题频发,存在极大安全隐患。
异步处理通常采用消息中间件MQ实现,需要引入额外中间件,增加系统复杂度,代价高、效率低,并发数据处理复杂,主机资源利用率低。
故如何降低多线程编程复杂度,屏蔽多线程实现细节,提高系统健壮性和安全性,同时降低任务分解复杂度,保证拆分工作任务时数据集的均衡性,减少任务总体耗时是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种基于多线程的自动化任务分解调度系统及实现方法,来解决如何降低多线程编程复杂度,屏蔽多线程实现细节,提高系统健壮性和安全性,同时降低任务分解复杂度,保证拆分工作任务时数据集的均衡性,减少任务总体耗时的问题。
本发明的技术任务是按以下方式实现的,一种基于多线程的自动化任务分解调度系统,该系统包括,
任务处理资源池模块,用于作为用户任务的接入层,提供同步接口服务及异步接口服务,同时提供执行情况监控服务,实时读取数据库中任务执行信息,进行可视化展示;
用户任务接口模块,用于定义用户发起任务必须实现的业务逻辑;
任务管理器模块,用于任务声明周期管理;
基础组件服务模块,用于具体任务执行;其中,具体任务包括调度任务和工作任务两类任务;每一次任务执行请求会创建一个调度任务和多个工作任务,多个工作任务并行执行,提高任务总体执行效率;调度任务用于任务分解,合并数据集;工作任务作为任务执行的载体,用于业务处理;
数据拆分策略模块,用于保证拆分工作任务时,数据集的均衡性。
作为优选,数据拆分策略模块提供四种数据拆分策略,分别为均分策略、分组键策略、二次平衡策略及自定义拆分规则策略;
其中,均分策略是指根据设定任务数或者单个工作任务处理数据量拆分数据集,将数据集平均分配;
分组键策略是指根据指定分组键拆分数据集,分组键支持单维度及组合维度;相同分组键的数据打包成一个任务串行处理,不同分组键的数据并行处理;
二次平衡策略是分组键策略和均分策略的组合应用,具体是指在分组键策略的基础上进一步应用均分策略,进行二次分配;
自定义拆分规则策略是指通过实现数据拆分接口,自定义拆分规则,实现定制化数据拆分策略。
作为优选,基础组件服务模块的工作过程具体如下:
(1)、调度任务启动后,执行任务分解,根据选择数据拆分策略拆分数据集,自动打包数据生成工作任务,启动工作任务执行;
(2)、工作任务调用用户任务,实现具体数据处理的业务逻辑,记录工作任务执行信息;
(3)、调度任务等待所有工作任务执行完毕,收集工作任务执行结果,计算任务总体耗时,返回给任务管理器,将最终结果返回给任务发起方。
作为优选,任务管理器模块的工作过程具体如下:
(1)、根据用户提交任务设置并发度,构建任务,分配任务资源,调度任务执行;
(2)、控制生成调度任务,启动任务执行;
(3)、跟踪任务执行情况,统计任务执行耗时,将任务执行信息写入数据库。
作为优选,用户任务接口模块的功能包括数据处理业务逻辑和拆分数据集具体实现;
其中,拆分数据集具体实现具体为:预留数据集拆分接口,用于支持自定义数据拆分策略;同时为了保证用户任务的高可扩展性,预留任务执行前准备,任务执行后清理接口,用户根据实际情况选择实现;用户任务也是一个批处理任务,可根据实际需要扩展实现预留接口,如任务执行前开启缓存,任务结束后清理缓存。
作为优选,任务处理资源池模块是基于java线程池扩展实现,自动化配置;任务处理资源池模块提供三种性能模式,分别为安全模式、高并发模式和自定义模式;
安全模式是指以安全为目标,通过增加等待队列长度,放缓线程创建速度;最小线程数设置为cpu核心数的一半,最大线程数设置为cpu核心数;
高并发模式是指在证安全的前提下,最大化挖掘机器性能,提高并发度;并通过减少等待队列长度,加快线程创建速度;最小线程数设置为cpu核心数,最大线程数设置为cpu核心数的两倍;
自定义模式是指支持用户自定义线程池配置包含核心线程数、最大线程数及等待队列最大长度。
更优地,任务处理资源池的同步接口服务等待返回数据结果,异步接口服务无需等待返回数据结果。
一种基于多线程的自动化任务分解调度实现方法,该方法是将用户任务提交给任务处理资源池模块,基础组件服务模块发起任务分解和任务调度,任务分解由任务调度发起,将接收到的批量数据集按照任务数拆分,包装生成工作任务;再按照设定数据拆分策略模块将一个任务拆分成多个任务,即自动创建多线程任务,提供并发数据处理调度能力,提高任务整体执行效率。
作为优选,该方法具体如下:
S1、用户实现任务接口处理逻辑,提交给任务处理资源池模块,发起任务申请,任务处理资源池模块调度任务管理器模块执行;
S2、任务管理器模块根据用户指定并发度及当前主机资源配置,评估安全的任务并发度,设置任务参数,构建任务并启动;
S3、任务启动后,由基础组件服务模块生成调度任务,调度任务进行任务分解,拆分数据集,调用用户任务实现接口,按照指定数据拆分策略将大批量数据集进行均分,拆分后数据片打包生成工作任务;
S4、并行启动工作任务进行执行,工作任务调用用户任务实现接口执行数据处理业务逻辑进行业务处理,记录任务执行耗时;
S5、调度任务等待所有工作任务执行完成后,记录任务总体耗时,将数据集合并后返回给用户。
更优地,数据拆分策略模块提供四种数据拆分策略,分别为均分策略、分组键策略、二次平衡策略及自定义拆分规则策略;
其中,均分策略是指根据设定任务数或者单个工作任务处理数据量拆分数据集,将数据集平均分配;
分组键策略是指根据指定分组键拆分数据集,分组键支持单维度及组合维度;相同分组键的数据打包成一个任务串行处理,不同分组键的数据并行处理;
二次平衡策略是分组键策略和均分策略的组合应用,具体是指在分组键策略的基础上进一步应用均分策略,进行二次分配;
自定义拆分规则策略是指通过实现数据拆分接口,自定义拆分规则,实现定制化数据拆分策略。
本发明的基于多线程的自动化任务分解调度系统及实现方法具有以下优点:
(一)本发明基于多线程的任务分解调度组件能够自动实现任务分解、任务调度,屏蔽多线程实现细节,降低多线程编程门槛,减少任务执行总体耗时;
(二)本发明引入任务处理资源池模块作为用户提交任务入口,根据设定性能模式及主机资源自动设置线程最大并发度,有效避免内存溢出风险,提高系统可靠性、安全性;
(三)本发明提供了可扩展的用户任务接口,支持同步、异步数据处理场景;
(四)本发明有效解决批量数据处理耗时长问题,能够将大批量数据处理任务拆分为多个工作任务,自动启动多线程并发执行,缩短任务执行耗时,提高任务执行效率;
(五)本发明提供了执行情况监控服务,实时读取数据库中任务执行信息,进行可视化展示,执行情况一目了然;
(六)本发明在统计任务执行耗时,为任务优化提供可靠线索,可根据任务总体耗时及工作任务耗时均衡性,调整任务拆分的最优解;
(七)本发明支持非关键路径异步化处理,降低响应延迟;
(八)本发明能够自动化任务分解:实现自动将一个大数据量任务拆分为多个小数据量任务并行处理,保证数据集拆分的均衡性,根据主机资源自动设置适合的任务并发数,缩短任务总体耗时,简单方便快捷,编写多线程任务,提高系统可靠性安全性;
(九)本发明保证了数据集拆分均衡性:为简化数据拆分复杂度,保证数据集拆分均衡性,提供均分策略、分组键策略、二次平衡策略、自定义拆分规则策略四种数据拆分策略;
(十)本发明保证了服务安全性:为解决线程池设置复杂问题,本方案提供三种性能模式安全模式、高并发模式、自定义模式,通过调整默认策略,解决线程并发控制问题;
(十一)本发明实现用户任务,提交给任务处理资源池模块,基础组件服务发起任务分解及任务调度,自动创建多线程任务,提供并发数据处理调度能力,提高任务整体执行效率;
(十二)本发明提供多线程并发数据处理调度能力,支持同步、异步数据处理场景,添加线程池支持,自动化配置,提高执行效率及系统安全性,旨在简化多线程编程,降低多线程编程门槛,并可作为基础服务组件,嵌入到项目中,提高任务执行效率及系统安全性。
附图说明
下面结合附图对本发明进一步说明。
附图1为基于多线程的自动化任务分解调度系统的结构框图;
附图2为基于多线程的自动化任务分解调度实现方法的时序图。
具体实施方式
参照说明书附图和具体实施例对本发明的基于多线程的自动化任务分解调度系统及实现方法作以下详细地说明。
实施例1:
如附图1所示,本发明的基于多线程的自动化任务分解调度系统,该系统包括,
任务处理资源池模块,用于作为用户任务的接入层,提供同步接口服务及异步接口服务,同时提供执行情况监控服务,实时读取数据库中任务执行信息,进行可视化展示;其中,任务处理资源池的同步接口服务等待返回数据结果,异步接口服务无需等待返回数据结果;
用户任务接口模块,用于定义用户发起任务必须实现的业务逻辑;
任务管理器模块,用于任务声明周期管理;
基础组件服务模块,用于具体任务执行;其中,具体任务包括调度任务和工作任务两类任务;每一次任务执行请求会创建一个调度任务和多个工作任务,多个工作任务并行执行,提高任务总体执行效率;调度任务用于任务分解,合并数据集;工作任务作为任务执行的载体,用于业务处理;
数据拆分策略模块,用于保证拆分工作任务时,数据集的均衡性。
本实施例中的数据拆分策略模块提供四种数据拆分策略,分别为均分策略、分组键策略、二次平衡策略及自定义拆分规则策略;
其中,均分策略是指根据设定任务数或者单个工作任务处理数据量拆分数据集,将数据集平均分配;
分组键策略是指根据指定分组键拆分数据集,分组键支持单维度及组合维度;相同分组键的数据打包成一个任务串行处理,不同分组键的数据并行处理;
二次平衡策略是分组键策略和均分策略的组合应用,具体是指在分组键策略的基础上进一步应用均分策略,进行二次分配;
自定义拆分规则策略是指通过实现数据拆分接口,自定义拆分规则,实现定制化数据拆分策略。
本实施例中的基础组件服务模块的工作过程具体如下:
(1)、调度任务启动后,执行任务分解,根据选择数据拆分策略拆分数据集,自动打包数据生成工作任务,启动工作任务执行;
(2)、工作任务调用用户任务,实现具体数据处理的业务逻辑,记录工作任务执行信息;
(3)、调度任务等待所有工作任务执行完毕,收集工作任务执行结果,计算任务总体耗时,返回给任务管理器,将最终结果返回给任务发起方。
本实施例中的任务管理器模块的工作过程具体如下:
(1)、根据用户提交任务设置并发度,构建任务,分配任务资源,调度任务执行;
(2)、控制生成调度任务,启动任务执行;
(3)、跟踪任务执行情况,统计任务执行耗时,将任务执行信息写入数据库。
本实施例中的用户任务接口模块的功能包括数据处理业务逻辑和拆分数据集具体实现;
其中,拆分数据集具体实现具体为:预留数据集拆分接口,用于支持自定义数据拆分策略;同时为了保证用户任务的高可扩展性,预留任务执行前准备,任务执行后清理接口,用户根据实际情况选择实现;用户任务也是一个批处理任务,可根据实际需要扩展实现预留接口,如任务执行前开启缓存,任务结束后清理缓存。
本实施例中的任务处理资源池模块是基于java线程池扩展实现,自动化配置;任务处理资源池模块提供三种性能模式,分别为安全模式、高并发模式和自定义模式,可以按需选择。根据主机资源配置,自动调整最大并发数,设置队列长度,避免内存溢出;
安全模式是指以安全为目标,通过增加等待队列长度,放缓线程创建速度;最小线程数设置为cpu核心数的一半,最大线程数设置为cpu核心数;
高并发模式是指在证安全的前提下,最大化挖掘机器性能,提高并发度;并通过减少等待队列长度,加快线程创建速度;最小线程数设置为cpu核心数,最大线程数设置为cpu核心数的两倍;
自定义模式是指支持用户自定义线程池配置包含核心线程数、最大线程数及等待队列最大长度。
实施例2:
本发明的基于多线程的自动化任务分解调度实现方法,该方法是将用户任务提交给任务处理资源池模块,基础组件服务模块发起任务分解和任务调度,任务分解由任务调度发起,将接收到的批量数据集按照任务数拆分,包装生成工作任务;再按照设定数据拆分策略模块将一个任务拆分成多个任务,即自动创建多线程任务,提供并发数据处理调度能力,提高任务整体执行效率;如附图2所示,该方法具体如下:
S1、用户实现任务接口处理逻辑,提交给任务处理资源池模块,发起任务申请,任务处理资源池模块调度任务管理器模块执行;
S2、任务管理器模块根据用户指定并发度及当前主机资源配置,评估安全的任务并发度,设置任务参数,构建任务并启动;
S3、任务启动后,由基础组件服务模块生成调度任务,调度任务进行任务分解,拆分数据集,调用用户任务实现接口,按照指定数据拆分策略将大批量数据集进行均分,拆分后数据片打包生成工作任务;
S4、并行启动工作任务进行执行,工作任务调用用户任务实现接口执行数据处理业务逻辑进行业务处理,记录任务执行耗时;
S5、调度任务等待所有工作任务执行完成后,记录任务总体耗时,将数据集合并后返回给用户。
本实施例中的数据拆分策略模块提供四种数据拆分策略,分别为均分策略、分组键策略、二次平衡策略及自定义拆分规则策略;
其中,均分策略是指根据设定任务数或者单个工作任务处理数据量拆分数据集,将数据集平均分配;
分组键策略是指根据指定分组键拆分数据集,分组键支持单维度及组合维度;相同分组键的数据打包成一个任务串行处理,不同分组键的数据并行处理;适用于分布式场景下,海量数据分片存储,可以根据实际业务场景选择,如按域、按省作为分组键拆分数据集。一种简单实用的数据拆分策略,通常适用于业务上对数据处理顺序,并发控制没有特殊要求的场景。
二次平衡策略是分组键策略和均分策略的组合应用,具体是指在分组键策略的基础上进一步应用均分策略,进行二次分配,最大化保证数据拆分的均衡。如按省拆分数据集,存在大省、小省数据不均衡的情况,可以采用二次平衡策略实现任务拆分,保证数据集拆分均衡。
自定义拆分规则策略:在某些复杂场景下,如提供策略无法满足数据拆分需求,通过实现数据拆分接口,自定义拆分规则,实现定制化数据拆分策略。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于多线程的自动化任务分解调度系统,其特征在于,该系统包括,
任务处理资源池模块,用于作为用户任务的接入层,提供同步接口服务及异步接口服务,同时提供执行情况监控服务,实时读取数据库中任务执行信息,进行可视化展示;
用户任务接口模块,用于定义用户发起任务必须实现的业务逻辑;
任务管理器模块,用于任务声明周期管理;
基础组件服务模块,用于具体任务执行;其中,具体任务包括调度任务和工作任务两类任务;每一次任务执行请求会创建一个调度任务和多个工作任务,多个工作任务并行执行;调度任务用于任务分解,合并数据集;工作任务作为任务执行的载体,用于业务处理;
数据拆分策略模块,用于保证拆分工作任务时,数据集的均衡性。
2.根据权利要求1所述的基于多线程的自动化任务分解调度系统,其特征在于,数据拆分策略模块提供四种数据拆分策略,分别为均分策略、分组键策略、二次平衡策略及自定义拆分规则策略;
其中,均分策略是指根据设定任务数或者单个工作任务处理数据量拆分数据集,将数据集平均分配;
分组键策略是指根据指定分组键拆分数据集,分组键支持单维度及组合维度;相同分组键的数据打包成一个任务串行处理,不同分组键的数据并行处理;
二次平衡策略是分组键策略和均分策略的组合应用,具体是指在分组键策略的基础上进一步应用均分策略,进行二次分配;
自定义拆分规则策略是指通过实现数据拆分接口,自定义拆分规则,实现定制化数据拆分策略。
3.根据权利要求1所述的基于多线程的自动化任务分解调度系统,其特征在于,基础组件服务模块的工作过程具体如下:
(1)、调度任务启动后,执行任务分解,根据选择数据拆分策略拆分数据集,自动打包数据生成工作任务,启动工作任务执行;
(2)、工作任务调用用户任务,实现具体数据处理的业务逻辑,记录工作任务执行信息;
(3)、调度任务等待所有工作任务执行完毕,收集工作任务执行结果,计算任务总体耗时,返回给任务管理器,将最终结果返回给任务发起方。
4.根据权利要求1所述的基于多线程的自动化任务分解调度系统,其特征在于,任务管理器模块的工作过程具体如下:
(1)、根据用户提交任务设置并发度,构建任务,分配任务资源,调度任务执行;
(2)、控制生成调度任务,启动任务执行;
(3)、跟踪任务执行情况,统计任务执行耗时,将任务执行信息写入数据库。
5.根据权利要求1所述的基于多线程的自动化任务分解调度系统,其特征在于,用户任务接口模块的功能包括数据处理业务逻辑和拆分数据集具体实现;
其中,拆分数据集具体实现具体为:预留数据集拆分接口,用于支持自定义数据拆分策略;同时预留任务执行前准备,任务执行后清理接口,用户根据实际情况选择实现。
6.根据权利要求1所述的基于多线程的自动化任务分解调度系统,其特征在于,任务处理资源池模块是基于java线程池扩展实现,自动化配置;任务处理资源池模块提供三种性能模式,分别为安全模式、高并发模式和自定义模式;
安全模式是指以安全为目标,通过增加等待队列长度,放缓线程创建速度;最小线程数设置为cpu核心数的一半,最大线程数设置为cpu核心数;
高并发模式是指在证安全的前提下,最大化挖掘机器性能,提高并发度;并通过减少等待队列长度,加快线程创建速度;最小线程数设置为cpu核心数,最大线程数设置为cpu核心数的两倍;
自定义模式是指支持用户自定义线程池配置包含核心线程数、最大线程数及等待队列最大长度。
7.根据权利要求1-6中任一所述的基于多线程的自动化任务分解调度系统,其特征在于,任务处理资源池的同步接口服务等待返回数据结果,异步接口服务无需等待返回数据结果。
8.一种基于多线程的自动化任务分解调度实现方法,其特征在于,该方法是将用户任务提交给任务处理资源池模块,基础组件服务模块发起任务分解和任务调度,任务分解由任务调度发起,将接收到的批量数据集按照任务数拆分,包装生成工作任务;再按照设定数据拆分策略模块将一个任务拆分成多个任务,即自动创建多线程任务,提供并发数据处理调度能力,提高任务整体执行效率。
9.根据权利要求8所述的基于多线程的自动化任务分解调度实现方法,其特征在于,该方法具体如下:
S1、用户实现任务接口处理逻辑,提交给任务处理资源池模块,发起任务申请,任务处理资源池模块调度任务管理器模块执行;
S2、任务管理器模块根据用户指定并发度及当前主机资源配置,评估安全的任务并发度,设置任务参数,构建任务并启动;
S3、任务启动后,由基础组件服务模块生成调度任务,调度任务进行任务分解,拆分数据集,调用用户任务实现接口,按照指定数据拆分策略将大批量数据集进行均分,拆分后数据片打包生成工作任务;
S4、并行启动工作任务进行执行,工作任务调用用户任务实现接口执行数据处理业务逻辑进行业务处理,记录任务执行耗时;
S5、调度任务等待所有工作任务执行完成后,记录任务总体耗时,将数据集合并后返回给用户。
10.根据权利要求8或9所述的基于多线程的自动化任务分解调度实现方法,其特征在于,数据拆分策略模块提供四种数据拆分策略,分别为均分策略、分组键策略、二次平衡策略及自定义拆分规则策略;
其中,均分策略是指根据设定任务数或者单个工作任务处理数据量拆分数据集,将数据集平均分配;
分组键策略是指根据指定分组键拆分数据集,分组键支持单维度及组合维度;相同分组键的数据打包成一个任务串行处理,不同分组键的数据并行处理;
二次平衡策略是分组键策略和均分策略的组合应用,具体是指在分组键策略的基础上进一步应用均分策略,进行二次分配;
自定义拆分规则策略是指通过实现数据拆分接口,自定义拆分规则,实现定制化数据拆分策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111231030.XA CN114003376A (zh) | 2021-10-22 | 2021-10-22 | 基于多线程的自动化任务分解调度系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111231030.XA CN114003376A (zh) | 2021-10-22 | 2021-10-22 | 基于多线程的自动化任务分解调度系统及实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114003376A true CN114003376A (zh) | 2022-02-01 |
Family
ID=79923664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111231030.XA Pending CN114003376A (zh) | 2021-10-22 | 2021-10-22 | 基于多线程的自动化任务分解调度系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003376A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115271473A (zh) * | 2022-08-02 | 2022-11-01 | 上海齐屹信息科技有限公司 | 一种智能多维数据业务指标调度方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150135183A1 (en) * | 2013-11-12 | 2015-05-14 | Oxide Interactive, LLC | Method and system of a hierarchical task scheduler for a multi-thread system |
CN106325980A (zh) * | 2015-06-30 | 2017-01-11 | 中国石油化工股份有限公司 | 一种多线程并发系统 |
-
2021
- 2021-10-22 CN CN202111231030.XA patent/CN114003376A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150135183A1 (en) * | 2013-11-12 | 2015-05-14 | Oxide Interactive, LLC | Method and system of a hierarchical task scheduler for a multi-thread system |
CN106325980A (zh) * | 2015-06-30 | 2017-01-11 | 中国石油化工股份有限公司 | 一种多线程并发系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115271473A (zh) * | 2022-08-02 | 2022-11-01 | 上海齐屹信息科技有限公司 | 一种智能多维数据业务指标调度方法 |
CN115271473B (zh) * | 2022-08-02 | 2023-12-19 | 上海齐屹信息科技有限公司 | 一种智能多维数据业务指标调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021008543A1 (zh) | 一种资源调度的方法和电子设备 | |
US9454389B2 (en) | Abstracting a multithreaded processor core to a single threaded processor core | |
Calheiros et al. | Energy-efficient scheduling of urgent bag-of-tasks applications in clouds through DVFS | |
US20150312167A1 (en) | Maximizing server utilization within a datacenter | |
US20160210174A1 (en) | Hybrid Scheduler and Power Manager | |
CN107122233B (zh) | 一种面向tsn业务的多vcpu自适应实时调度方法 | |
EP2548120A1 (en) | System and method of executing threads at a processor | |
CN112130963A (zh) | 虚拟机任务的调度方法、装置、计算机设备及存储介质 | |
CN102081554A (zh) | 云计算操作系统及其内核控制系统及方法 | |
Vaishnav et al. | Heterogeneous resource-elastic scheduling for CPU+ FPGA architectures | |
EP0644485A2 (en) | Method for controlling virtual machine running time in a virtual machine system | |
CN113672391A (zh) | 一种基于Kubernetes的并行计算任务调度方法与系统 | |
CN111459622B (zh) | 调度虚拟cpu的方法、装置、计算机设备和存储介质 | |
CN114003376A (zh) | 基于多线程的自动化任务分解调度系统及实现方法 | |
CN109739634A (zh) | 一种原子任务执行方法及装置 | |
CN109857574A (zh) | 一种低能耗集群环境下可超载负载感知的服务质量提升方法 | |
Wu et al. | Dynamically adjusting scale of a kubernetes cluster under qos guarantee | |
RU2450330C2 (ru) | Аппаратно-реализуемый способ выполнения программ | |
Cheriere et al. | On the usability of shortest remaining time first policy in shared hadoop clusters | |
CN114035926A (zh) | 应用线程调度方法、装置、存储介质及电子设备 | |
CN111176847B (zh) | 物理核超多线程服务器上大数据集群性能优化方法及装置 | |
Ishiguro et al. | Revisiting VM-Agnostic KVM vCPU Scheduler for Mitigating Excessive vCPU Spinning | |
Bakni et al. | Survey on improving the performance of MapReduce in Hadoop | |
Gao et al. | DBM: Delay-sensitive buffering mechanism for DNN offloading services | |
CN116893893B (zh) | 一种虚拟机调度方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |