CN106598726A - 一种多任务管理系统及其分布式部署方法 - Google Patents
一种多任务管理系统及其分布式部署方法 Download PDFInfo
- Publication number
- CN106598726A CN106598726A CN201610970950.6A CN201610970950A CN106598726A CN 106598726 A CN106598726 A CN 106598726A CN 201610970950 A CN201610970950 A CN 201610970950A CN 106598726 A CN106598726 A CN 106598726A
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- mission operations
- tasks
- management system
- 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
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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提出一种多任务管理系统及其分布式部署方法,该系统包括:任务库,被配置成存储任务;任务策略管理器,被配置成根据任务的执行线程数,确定任务执行策略;任务派发器,被配置成根据任务执行策略与任务队列情况从任务库读取任务,并派发到相应的任务队列中;任务队列管理器,被配置成生成任务队列以及销毁任务队列;任务队列,被配置成存放任务派发器派发的任务;任务作业线管理器,被配置成生成任务作业线以及销毁任务作业线;任务作业线,被配置成执行任务队列中的任务。本发明支持多层级的任务,由于任务数据量大,为了提高性能与并发量,引进任务队列功能,队列可以根据策略选择任务执行;并通过分布式部署提高了多数据处理的效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种多任务管理系统及其分布式部署方法。
背景技术
在当前的互联网与企业信息化应用中,经常会遇到大量任务的处理,这些任务的特性是数量大,在资源有限的情况下需要长时间运行这些作业,而且这些任务的时效性要求不高。处理这些类似的任务,一般都会用到多线程执行、多pc执行以实现水平扩展,也可以分布式执行,实现垂直扩展。多线程执行的方式一般都会使用到线程池,如果任务需要定时处理,还可以引入一些任务调度的功能。如果是分布式执行,则可以用些成熟的框架或者方法,如hadoop,mapreduce。 有些这些任务量大,则需要对这些任务的管理、监控,甚至人工干预。
当前很多多任务处理机制都没有考虑多层级的任务处理机制,另外任务的分派相对不灵活,任务的优先级别只绑定到任务,没有绑定到线程。对执行时间较短,任务量较多的情况,性能较差。
申请号为CN201310655730.0的“单线程任务的多线程执行方法及系统”与CN201010517150.1的“一种通过线程管理提高多任务处理效率的方法”中提到把一个单一的任务拆分成多个任务,以提高效率,但是对规模量较大的任务,几十万的任务情况下,如何提高任务的执行效率,以及如何按照用户的需要对任务进行优先级管理;申请号为CN201310189250.X的“基于多任务系统的分布式系统和方法”中提到多任务的分布式处理方式,并解决并发处理任务时资源竞争的问题,但是在任务的优先级配置方面所有不足。
发明内容
为此,本案提出一种多任务管理系统及其分布式部署方法,以对任务灵活的配置及执行。
具体方案如下:
一种多任务管理系统,包括:
任务库,被配置成存储任务;
任务策略管理器,被配置成根据任务的执行线程数,确定任务执行策略;
任务派发器,被配置成根据任务策略管理器所确定的任务执行策略与任务队列的任务情况从任务库读取任务,并派发到相应的任务队列中;
任务队列管理器,被配置成生成任务队列以及销毁任务队列;
任务队列,被配置成存放任务派发器派发的任务;
任务作业线管理器,被配置成生成任务作业线以及销毁任务作业线;
任务作业线,被配置成执行任务队列中的任务。
进一步的,还包括任务生成器,被配置成根据业务实体生成任务。
进一步的,所述的任务具有属性,属性包括但不限于任务类型、重复次数、任务执行时间、任务执行策略、任务队列、任务作业线、任务状态、执行情况、业务类型和业务id属性。
进一步的,所述的任务在没有相应的任务队列属性与任务作业线属性的属性设定时,通过队列管理器与任务作业线管理器初始化生成相应的任务队列与任务作业线。
进一步的,所述任务执行策略与执行线程的对应关系为一个任务执行策略对应一个或多个执行线程。
进一步的,所述执行线程、任务队列与任务作业线之间的关系为一个执行线程对应一个任务队列和一个任务作业线
进一步的,所述的任务队列管理器在某任务队列中没有存放任务时,销毁该任务队列。
进一步的,还包含监听器,监听器被配置为获取任务队列中的任务数,当任务数少于一定值时,监听器通知任务派发器,任务派发器派发新的任务至任务队列;当任务队列在获取到任务时,监听器通知任务作业线执行任务。
进一步的,:所述的任务作业线管理器在某任务作业线中没有执行任务时,销毁该任务作业线。
一种基于上述的多任务管理系统的分布式部署方法,包括:提供部署任务生成器及存储任务库的数据存储装置;在一主服务器端部署所述任务派发器、任务策略管理器、队列管理器以及任务作业线管理器;在另外的多个从属服务器端分别部署所述的任务队列以及任务作业线,数据存储装置与主服务器端建立通讯连接,主服务器端与多个从属服务器端分别建立通讯连接。
本发明有益效果:
1.支持多层级的任务,如父任务可以是定时的任务,子任务可以是业务处理任务,子子任务可以是http请求任务;
2.任务的执行方式支持api调用、http调用、soap调用;
3.由于任务数据量大,为了提高性能与并发量,引进任务队列功能,队列可以根据策略选择任务执行;
4.使用任务执行策略,并由任务执行策略确定任务所需线程;
5.分布式部署提高了多数据处理的效率。
附图说明
图1为本发明架构图;
图2为任务生命周期图;
图3为任务作业线生命周期图;
图4为分布式部署结构图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。现结合附图和具体实施方式对本发明进一步说明。
如图1所示,为本发明多任务处理系统的架构图,其主要由任务库、任务生成器、任务派发器、任务策略管理器、队列管理器、任务作业线管理器、任务队列与任务作业线8个实体构件构成。
任务库:保存所有的任务实体。任务实体的属性有任务类型(定时作业、实时作业)、重复次数(定义任务重复执行的次数)、任务执行时间、任务执行策略、任务队列、任务作业线、任务状态(待执行、执行中、已完成)、执行情况(正常、异常、超时)、业务类型、业务id等字段信息。
任务生成器:主要是把业务实体持久化,与并持久化的业务实体实例化;另外当生成的任务没有对应的任务队列属性与任务作业线属性的属性设定时,就通过队列管理器与任务作业线管理器初始化相应的队列与任务作业线。
需要说明的是,任务也可采用添加的方式直接加入任务库,并事先对设定对任务队列属性与任务作业线属性设定,在有设定的情况下,按照设定生成任务队列以及任务作业线。
任务派发器:根据任务的策略与当任务队列情况派发从任务库读取任务,并分配到相应的任务队列中,任务队列的监听器在策略少定额的任务的时候,通知任务派发器,再派发任务。
任务策略管理器:定义一类任务,这类任务有几个线程执行,该由多个线程执行的任务的具体的执行方法便可定义为一类策略,当然也可对只由一个线程执行的任务定义一类策略,一个线程表示一个队列与一个任务作业线;在多任务处理器初始化的时候,会调用这个任务策略管理器,生成相应的队列与任务作业线。
队列管理器:在多任务处理器初始化的时候,依据任务策略管理器的数据,生成任务队列,一个策略可以对应多个任务队列;当队列没有任务的时,就销毁队列;
任务队列:在从任务库中提取任务比执行完任务还慢的情况下,为了提高执行任务的性能,引入列队,队列与任务作业线是一对一的关系,队列存放的任务,由任务策略来定,每个队列都对应了一个任务策略,队列与任务策略是一对多的关系;并且每个队列都有一个监听器,监听队列的任务数,当任务少于一定值时,通知任务派发器,让任务派发器派发新的任务;当任务从零到有是,通知任务作业线,让它重新开始作业;当重新整理完任务时,也会通知任务作业线,让它重新开始作业;
任务作业线管理器:负责生成任务作业线,与销毁任务作业线;在多任务处理器初始化的时候生成任务作业线,没有任务的时候自动销毁任务作业线;
任务作业线:负责从队列中获取任务,并执行任务,执行完任务后,修改任务的转台到任务库;一个任务作业线一个线程;当没有任务时,挂起此线程,当前又有任务时,恢复此线程。
另外,本实施例还提供有管理api,为对外开发方的api,主要有读取与持久化任务策略、读取与持久化任务库;监控api,主要是获取各个任务队列、任务作业线的信息与任务状态的信息。
任务实体是主要业务对象,其生命周期如图2所示,其包括:
1)创建任务:根据业务需要,可以通过api创建任务,并持久化到任务库;
2)生成任务对象:从任务库中,生成可执行的任务对象,根据任务策略放到相应的任务队列中,然后等待被任务作业线读取;
3)执行任务:被任务作业线读取后,在任务作业线执行任务,具体的任务实现支持多种方式,可以是本地执行、http执行、soap执行,此信息可以在任务中定义也可以在策略中定义,任务中的定义优先于策略中的定义;
4)销毁任务对象:当执行完后,持久化到任务库,并销毁任务对象。
任务作业线构的主要业务流程如图3所示,其包括:
1)初始化任务队列:任务作业线依赖于队列,没有任务队列,则无法获取任务,所以先初始化任务队列;根据任务策略初始化任务队列;
2)初始化任务作业线:根据任务策略初始化任务作业线,一个任务作业线为一个线程;
3)读取任务:从任务队列中读取任务,一次只能读取一个任务;
4)挂起任务作业线:当没有任务时,挂起线程;只有当又有任务时,监听器通知任务作业线管理器,并重新激活任务作业线;
5)执行任务:当有任务时,就执行任务
6)修改任务状态:当任务执行完毕后或者执行任务超时,都会修改任务的状态与持久化,并继续读取任务;
另外,还提出一种基于上述多任务处理系统的分布式部署方法,包括:提供部署任务生成器及存储任务库的数据存储装置;在一主服务器端部署所述、任务派发器、任务策略管理器、队列管理器以及任务作业线管理器;在另外的多个从属服务器端分别部署所述的任务队列以及任务作业线,数据存储装置与主服务器端建立通讯连接,主服务器端与多个从属服务器端分别建立通讯连接。
如图4,为分布式部署的示意图,其中,
1)服务器master:主要部署任务派发器、任务策略管理器、队列管理器、任务作业线管理器构件,并多出一个client构件,其中client构件主要是用来与slave服务器间通讯用,他们通过http协议进行通讯;
2)服务器slave:主要是生成任务队列实体、务作业线实体与client构件,slave服务器可以有多个任务队列实体与多个任务作业线实体,其中client构件主要是用来与master服务器间通讯用,他们通过http协议进行通讯。
本发明的系统也可通过单机部署的方式进行部署,单机部署即使把所有构件都部署到一台服务器中,但与分布式部署方式比较,处理数据量较小。本发明支持多层级的任务,如父任务可以是定时的任务,子任务可以是业务处理任务,子子任务可以是http请求任务;任务的执行方式支持api调用、http调用、soap调用;由于任务数据量大,为了提高性能与并发量,引进任务队列功能,队列可以根据策略选择任务执行;使用任务执行策略,并由任务执行策略确定任务所需线程;分布式部署提高了多数据处理的效率。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (10)
1.一种多任务管理系统,其特征在于,包括:
任务库,被配置成存储任务;
任务策略管理器,被配置成根据任务的执行线程数,确定任务执行策略;
任务派发器,被配置成根据任务策略管理器所确定的任务执行策略与任务队列的任务情况从任务库读取任务,并派发到相应的任务队列中;
任务队列管理器,被配置成生成任务队列以及销毁任务队列;
任务队列,被配置成存放任务派发器派发的任务;
任务作业线管理器,被配置成生成任务作业线以及销毁任务作业线;
任务作业线,被配置成执行任务队列中的任务。
2.根据权利要求1所述的多任务管理系统,其特征在于:还包括任务生成器,被配置成根据业务实体生成任务。
3.根据权利要求1或2所述的多任务管理系统,其特征在于:所述的任务具有属性,属性包括但不限于任务类型、重复次数、任务执行时间、任务执行策略、任务队列、任务作业线、任务状态、执行情况、业务类型和业务id属性。
4.根据权利要求3所述的多任务管理系统,其特征在于:所述的任务在没有相应的任务队列属性与任务作业线属性的属性设定时,通过队列管理器与任务作业线管理器初始化生成相应的任务队列与任务作业线。
5.根据权利要求1所述的多任务管理系统,其特征在于:所述任务执行策略与执行线程的对应关系为一个任务执行策略对应一个或多个执行线程。
6.根据权利要求1所述的多任务管理系统,其特征在于:所述执行线程、任务队列与任务作业线之间的关系为一个执行线程对应一个任务队列和一个任务作业线。
7.根据权利要求1所述的多任务管理系统,其特征在于:所述的任务队列管理器在某任务队列中没有存放任务时,销毁该任务队列。
8.根据权利要求1所述的多任务管理系统,其特征在于:还包含监听器,监听器被配置为获取任务队列中的任务数,当任务数少于一定值时,监听器通知任务派发器,任务派发器派发新的任务至任务队列;当任务队列在获取到任务时,监听器通知任务作业线执行任务。
9.根据权利要求1所述的多任务管理系统,其特征在于:所述的任务作业线管理器在某任务作业线中没有执行任务时,销毁该任务作业线。
10.一种基于权利要求1至9任一所述的多任务管理系统的分布式部署方法,其特征在于,包括:提供部署任务生成器及存储任务库的数据存储装置;在一主服务器端部署所述任务派发器、任务策略管理器、队列管理器以及任务作业线管理器;在另外的多个从属服务器端分别部署所述的任务队列以及任务作业线,数据存储装置与主服务器端建立通讯连接,主服务器端与多个从属服务器端分别建立通讯连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610970950.6A CN106598726A (zh) | 2016-11-04 | 2016-11-04 | 一种多任务管理系统及其分布式部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610970950.6A CN106598726A (zh) | 2016-11-04 | 2016-11-04 | 一种多任务管理系统及其分布式部署方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106598726A true CN106598726A (zh) | 2017-04-26 |
Family
ID=58590874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610970950.6A Pending CN106598726A (zh) | 2016-11-04 | 2016-11-04 | 一种多任务管理系统及其分布式部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106598726A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033207A (zh) * | 2018-06-29 | 2018-12-18 | 郑州云海信息技术有限公司 | 控制分布式文件系统的客户端高可用的方法、装置及介质 |
CN110213213A (zh) * | 2018-05-30 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 应用的定时任务处理方法及系统 |
CN110308979A (zh) * | 2019-06-27 | 2019-10-08 | 苏宁消费金融有限公司 | 基于任务调度的异步处理框架及其实现方法 |
CN114721774A (zh) * | 2022-04-02 | 2022-07-08 | 浙江数新网络有限公司 | 一种基于响应式编程单机单jvm实例的线程池 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902512A (zh) * | 2012-08-31 | 2013-01-30 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
CN103473138A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 基于线程池的多任务队列调度方法 |
US20160117194A1 (en) * | 2010-08-30 | 2016-04-28 | Adobe Systems Incorporated | Methods and apparatus for resource management cluster computing |
-
2016
- 2016-11-04 CN CN201610970950.6A patent/CN106598726A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160117194A1 (en) * | 2010-08-30 | 2016-04-28 | Adobe Systems Incorporated | Methods and apparatus for resource management cluster computing |
CN102902512A (zh) * | 2012-08-31 | 2013-01-30 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
CN103473138A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 基于线程池的多任务队列调度方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213213A (zh) * | 2018-05-30 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 应用的定时任务处理方法及系统 |
CN110213213B (zh) * | 2018-05-30 | 2021-08-03 | 腾讯科技(深圳)有限公司 | 应用的定时任务处理方法及系统 |
CN109033207A (zh) * | 2018-06-29 | 2018-12-18 | 郑州云海信息技术有限公司 | 控制分布式文件系统的客户端高可用的方法、装置及介质 |
CN110308979A (zh) * | 2019-06-27 | 2019-10-08 | 苏宁消费金融有限公司 | 基于任务调度的异步处理框架及其实现方法 |
CN114721774A (zh) * | 2022-04-02 | 2022-07-08 | 浙江数新网络有限公司 | 一种基于响应式编程单机单jvm实例的线程池 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750543B (zh) | 线程创建方法、业务请求处理方法及相关设备 | |
CN104978228B (zh) | 一种分布式计算系统的调度方法和装置 | |
CN106293950B (zh) | 一种面向集群系统的资源优化管理方法 | |
US20100269110A1 (en) | Executing tasks through multiple processors consistently with dynamic assignments | |
CN106557363A (zh) | 一种大数据任务调度的系统以及方法 | |
CN110888719A (zh) | 一种基于web服务的分布式任务调度系统及方法 | |
CN106325980A (zh) | 一种多线程并发系统 | |
CN109558234A (zh) | 一种定时任务调度方法和装置 | |
CN106598726A (zh) | 一种多任务管理系统及其分布式部署方法 | |
CN106844018A (zh) | 一种任务处理方法、装置及系统 | |
US8046759B2 (en) | Resource allocation method and system | |
US9098359B2 (en) | Durable execution of long running applications | |
CN105786603B (zh) | 一种基于分布式的高并发业务处理系统及方法 | |
CN105095327A (zh) | 一种分布式etl系统及调度方法 | |
CN111381972A (zh) | 分布式任务调度方法、装置和系统 | |
CN113220431B (zh) | 跨云的分布式数据任务调度方法、设备及存储介质 | |
US20160371123A1 (en) | Data Processing Method and Apparatus | |
US8095659B2 (en) | Service interface | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN113448706A (zh) | 批量任务处理方法、装置及系统 | |
Seelam et al. | Polyglot application auto scaling service for platform as a service cloud | |
CN105550028B (zh) | 一种基于缓存锁的多任务时序执行方法及系统 | |
CN107025134A (zh) | 数据库服务系统及兼容多种数据库的方法 | |
CN111522630B (zh) | 基于批次调度中心的计划任务执行方法以及系统 | |
CN109284190A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170426 |