CN113485828B - 基于quartz的分布式任务调度系统及方法 - Google Patents
基于quartz的分布式任务调度系统及方法 Download PDFInfo
- Publication number
- CN113485828B CN113485828B CN202110738065.6A CN202110738065A CN113485828B CN 113485828 B CN113485828 B CN 113485828B CN 202110738065 A CN202110738065 A CN 202110738065A CN 113485828 B CN113485828 B CN 113485828B
- Authority
- CN
- China
- Prior art keywords
- task management
- load
- task
- quaterz
- management unit
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 71
- 238000012544 monitoring process Methods 0.000 claims abstract description 16
- 239000010453 quartz Substances 0.000 claims description 9
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000412611 Consul Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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
- G06F9/505—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 considering the load
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
本发明公开基于quartz的分布式任务调度系统及方法,涉及互联网技术领域,其中该系统由协调器和多个quartz服务引擎集成,每个所述quartz服务引擎的内核包括多个任务管理单元,所述任务管理单元预设有第一负载阈值;所述协调器用于监控所述任务管理单元的第一负载水位,以及用于在任一所述任务管理单元的第一负载水位达到所述第一负载阈值时,动态扩展新的任务管理单元。本发明提供的基于quartz的分布式任务调度方法,应用于上述系统,通过对quartz的任务管理单元的扩展,减轻了单个任务管理单元的负荷,不再受限于quartz的性能瓶颈问题,并且在不增加应用端工作负荷的同时能够在控制面管控任务路由。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及基于quartz的分布式任务调度系统及方法。
背景技术
互联网的飞速发展使得互联网的使用越来越普遍,互联网不仅成为企业内部的沟通桥梁,也是企业和外部进行各类业务往来的重要管道。作业调度在企业业务处理中是不可或缺的存在,目前市场上绝大多数的分布式任务调度系统,都是基于quartz作为内核驱动,结合consul、zookeeper、etcd等协同工具来实现的,这些分布式调度系统主要有两种调度架构方案:
第一种是中心化调度架构,请参阅图1,其核心在于将调度器quartz中心化,执行器注册到调度中心服务,quartz驱动任务触发,通过注册表去路由分发任务到执行器。但是,quartz是通过数据库行锁来控制并发时候数据的一致性的,导致在大量高频任务集中触发的时候,quartz会出现严重的行锁竞争而产生性能瓶颈,官方建议quartz集群节点数量最优是4个节点(具体数量取决于于数据库性能),集群超过4个节点之后再增加节点反而会导致吞吐量下降。故而,这种将调度器quartz中心化的调度架构受限于quartz的性能瓶颈,吞吐和容量有限。
第二种是去中心化调度架构,核心在于quartz客户端(client-side)化,通过协同器进行选主,每个服务都有内核quartz自驱动,任务触发后交由主节点去路由重新分配执行器资源执行任务。但是,这种调度架构需要进行选主,涉及到故障转移等一致性问题,比较复杂;并且需要把调度逻辑放在应用端,增加应用端工作负荷,还会导致任务分散,很难对任务做实时修改并发数限制、重试设置、告警设置等控制面管控。
因此,需要一种既能不再受限于quartz的性能瓶颈问题,又不需要将任务调度逻辑放在应用端,能在控制面统一管控任务的分布式调度系统。
发明内容
本发明的目的在于提供基于quartz的分布式任务调度系统及方法,通过对quartz的任务管理单元的扩展、数据库的扩展,来减轻单个数据库、单个任务管理单元的负荷,不再受限于quartz的性能瓶颈问题,同时能够在控制面管控任务路由。
为了实现上述目的,本发明提供如下技术方案:
一种基于quartz的分布式任务调度系统,由协调器和多个quartz服务引擎集成,每个所述quartz服务引擎的内核包括多个任务管理单元,所述任务管理单元预设有第一负载阈值;所述协调器用于监控所述任务管理单元的第一负载水位,以及用于在任一所述任务管理单元的第一负载水位达到所述第一负载阈值时,动态扩展新的任务管理单元,其中,所述新的任务管理单元的配置与第一负载水位达到第一负载阈值的任务管理单元的配置相同。
优选地,每个所述quartz服务引擎对应一个数据库,所述数据库用于存储对应的quartz服务引擎中任务管理单元的数据。
较佳地,所述quartz服务引擎预设有第二负载阈值,所述协调器还用于监控所述quartz服务引擎的第二负载水位,以及用于当任一所述quartz服务引擎的第二负载水位达到所述第二负载阈值时,扩展一组新的quartz服务引擎及新的数据库;
其中,所述新的quartz服务引擎与第二负载水位达到第二负载阈值的quartz服务引擎的配置相同。
较好地,所述协调器还用于基于所述quartz服务引擎的第二负载水位和所述任务管理单元的第一负载水位,将任务均衡路由到任务管理单元中。
一种基于quartz的分布式任务调度方法,包括:
对quartz服务引擎中的任务管理单元预设第一负载阈值,其中,每个所述quartz服务引擎的内核包括多个任务管理单元,且所述quartz服务引擎中任务管理单元的数据存储到与所述quartz服务引擎对应的数据库中;
利用协调器监控任务管理单元的第一负载水位,并在所述协调器监控到任一所述任务管理单元的第一负载水位达到所述第一负载阈值时,动态扩展新的任务管理单元,并使所述新的任务管理单元的配置与第一负载水位达到第一负载阈值的任务管理单元的配置相同。
优选地,所述基于quartz的分布式任务调度方法还包括:
对所述quartz服务引擎预设第二负载阈值;
利用协调器监控quartz服务引擎的第二负载水位,并在所述协调器监控到任一所述quartz服务引擎的第二负载水位达到所述第二负载阈值时,动态扩展新的quartz服务引擎,并使所述新的quartz服务引擎的配置与第二负载水位达到第二负载阈值的quartz服务引擎的配置相同。
具体地,所述任务管理单元的第一负载水位是基于所述任务管理单元中每个任务的频率计算得到的;
所述quartz服务引擎的第二负载水位是基于内核中所有任务管理单元的第一负载水位计算得到的。
较好地,基于quartz的分布式任务调度方法还包括:利用协调器基于所述quartz服务引擎的第二负载水位和所述任务管理单元的第一负载水位,将任务均衡路由到任务管理单元中。
较佳地,利用协调器将任务均衡路由到任务管理单元中的方法包括:
获取第二负载水位最低的quartz服务引擎;
从所述第二负载水位最低的quartz服务引擎中获取第一负载水位最低的任务管理单元,将任务路由到所述第一负载水位最低的任务管理单元。
一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行上述的基于q uartz的分布式任务调度方法。
与现有技术相比,本发明提供的基于云原生数仓的业务监控方法及系统具有以下有益效果:
本发明提供的基于quartz的分布式任务调度系统中,每个quartz服务引擎的内核包括多个任务管理单元,并且利用协调器监控任务管理单元的第一负载水位,在必要时动态扩展新的任务管理单元,通过对quartz服务引擎的改造,实现任务管理单元的动态扩展,大大降低了任务之间的锁争用,提高了任务的吞吐量。
本发明提供的基于quartz的分布式任务调度方法,应用于上述基于quartz的分布式任务调度系统,通过对quartz的任务管理单元的扩展,减轻了单个任务管理单元的负荷,不再受限于quartz的性能瓶颈问题,并且在不增加应用端工作负荷的同时能够在控制面管控任务路由。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例中一种基于quartz的分布式任务调度系统的架构示意图;
图2为本发明实施例中一种集群节点的分布方式示意图;
图3为本发明实施例中均衡路由一个任务和该任务的触发器的过程示意图;
图4为本发明实施例中一种基于quartz的分布式任务调度方法的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
请参阅图1,本发明实施例提供一种基于quartz的分布式任务调度系统,由协调器和多个quartz服务引擎集成,每个quartz服务引擎的内核包括多个任务管理单元,任务管理单元预设有第一负载阈值;协调器用于监控任务管理单元的第一负载水位,以及用于在任一任务管理单元的第一负载水位达到第一负载阈值时,动态扩展新的任务管理单元,其中,新的任务管理单元的配置与第一负载水位达到第一负载阈值的任务管理单元的配置相同。
本发明提供的基于quartz的分布式任务调度系统中,每个quartz服务引擎的内核包括多个任务管理单元,并且利用协调器监控任务管理单元的第一负载水位,在任一任务管理单元达到第一负载阈值时,发出告警以及创建并启用一个与第一负载水位达到第一负载阈值的任务管理单元相同的新的任务管理单元,并将第一负载水位达到第一负载阈值的任务管理单元中的任务部分迁移到新的任务管理单元中,实现了动态扩展新的任务管理单元,大大降低了任务之间的锁争用,提高了任务的吞吐量。
本实施例提供的基于quartz的分布式任务调度系统中,每个quartz服务引擎对应一个数据库,即quartz服务引擎与数据库一一对应,数据库用于存储对应的quartz服务引擎中任务管理单元的数据。此外,quartz服务引擎预设有第二负载阈值,协调器还用于监控quartz服务引擎的第二负载水位,以及用于当任一quartz服务引擎的第二负载水位达到第二负载阈值时,扩展一组新的quartz服务引擎及新的数据库。值得注意的是,新的quartz服务引擎与第二负载水位达到第二负载阈值的quartz服务引擎的配置相同,并将第二负载水位达到第二负载阈值的quartz服务引擎中的部分任务迁移到新的quartz服务引擎中对应的任务管理单元中。可见,本系统通过修改配置实现当数据库成为瓶颈时扩展数据库,即实现了quartz服务引擎内核的拆分扩展,包括拆分扩展锁粒度和拆分扩展实例库,大大降低了quartz服务引擎中任务之间的锁争用,提高了quartz服务引擎中的任务吞吐量。
本发明提供的基于quartz的分布式任务调度系统,打破了传统分布式任务调度系统中一个调度服务启动一个quartz服务引擎,且每个quartz服务引擎加载一个任务管理单元的做法,在每个调度服务内创建启动多个quartz服务引擎,每个quartz服务引擎即为一个集群节点,并且每个quartz服务引擎内核中设有若干个被分配到的任务管理单元,又保证每个任务管理单元在集群中的其他节点(quartz服务引擎)中至少有一个副本,请参阅图1,图1中数据库a定义了两个任务管理单元a1、a2,数据库b定义了两个任务管理单元b1、b2,任务管理单元a1’、a2’是任务管理单元a1、a2的拆分扩展得到的副本,任务管理单元b1’、b2’是任务管理单元b1、b2的拆分扩展得到的副本。这种方式把单数据库拆分扩展到多个数据库,每个数据库对应的quartz服务引擎内核中又拆分扩展成多个管理单元,减少了每个管理单元、每个数据库的管理任务数,突破了quartz的性能瓶颈服务引擎。比如:有2个数据库a和b,每个数据库定义了2个任务管理单元u1和u2,有4个调度服务节点,那么集群节点分布的方式可能如图2所示,当然,还可以继续拆分扩展成8个、16个等等的调度服务节点,实现任务管理单元和数据库的扩展,大大降低了任务之间的锁争用,提高了任务的吞吐量。
除此之外,本发明实施例提供的基于quartz的分布式任务调度系统,协调器还用于基于quartz服务引擎的第二负载水位和任务管理单元的第一负载水位,将任务以及该任务的触发器均衡路由到任务管理单元中,实现了通过计算任务管理单元中任务的负荷,将任务均衡路由到不同的实例库来解决quartz服务引擎内核的性能瓶颈问题,提高quartz服务引擎的调度吞吐量。请参阅图3,均衡路由一个任务和该任务的触发器的过程包括:添加一个任务的时候根据现有的任务管理单元的负载情况均衡路由到目标节点,进而均衡路由到任务管理单元中;如果添加该任务的触发器,则将该触发器添加到所属任务的任务管理单元中。
本发明的目的在于提供基于quartz的分布式任务调度系统,通过对quartz的任务管理单元的扩展、数据库的扩展,来减轻单个数据库、单个任务管理单元的负荷,不再受限于quartz的性能瓶颈问题,同时能够在控制面管控任务路由,实现任务的均衡路由调度。
实施例二
请参阅图4,本发明实施例提供一种基于quartz的分布式任务调度方法,包括:
对quartz服务引擎中的任务管理单元预设第一负载阈值,其中,每个quartz服务引擎的内核包括多个任务管理单元,且quartz服务引擎中任务管理单元的数据存储到与quartz服务引擎对应的数据库中;
利用协调器监控任务管理单元的第一负载水位,并在协调器监控到任一任务管理单元的第一负载水位达到第一负载阈值时,动态扩展新的任务管理单元,并使新的任务管理单元的配置与第一负载水位达到第一负载阈值的任务管理单元的配置相同。
其中,在协调器监控到任一任务管理单元的第一负载水位达到第一负载阈值时,动态扩展新的任务管理单元的方法包括:
在quartz服务引擎中的内核中增加一个新的任务管理单元,并且在对应的数据库中添加日志;
基于第一负载水位达到第一负载阈值的任务管理单元的配置,修改新的任务管理单元的配置;
将第一负载水位达到第一负载阈值的任务管理单元的任务部分迁移到新的任务管理单元中。
本实施例提供的基于quartz的分布式任务调度方法,通过对quartz的任务管理单元的扩展,减轻了单个任务管理单元的负荷,不再受限于quartz的性能瓶颈问题,并且在不增加应用端工作负荷的同时能够在控制面管控任务路由。
本实施例提供的基于quartz的分布式任务调度方法还包括:
对quartz服务引擎预设第二负载阈值;
利用协调器监控quartz服务引擎的第二负载水位,并在协调器监控到任一quartz服务引擎的第二负载水位达到第二负载阈值时,动态扩展新的quartz服务引擎,并使新的quartz服务引擎的配置与第二负载水位达到第二负载阈值的quartz服务引擎的配置相同。
其中,任务管理单元的第一负载水位是基于任务管理单元中每个任务的频率计算得到的,即根据每个任务的执行频率(或执行周期),计算每个任务的时间维度的负载,任务管理单元进而根据每个任务的负载计算得到的第一负载水位;quartz服务引擎的第二负载水位是基于内核中所有任务管理单元的第一负载水位计算得到的。
具体实施中,每个任务的负载计算逻辑为:负载=24*60*60/执行周期,例如:任务的执行频率为每5秒执行一次,则该任务的执行周期为5秒,该任务的负载=(24*60*60)/5。
本实施例中基于quartz的分布式任务调度方法,还包括利用协调器基于quartz服务引擎的第二负载水位和任务管理单元的第一负载水位,将任务均衡路由到任务管理单元中,具体包括:
获取第二负载水位最低的quartz服务引擎;
从第二负载水位最低的quartz服务引擎中获取第一负载水位最低的任务管理单元,将任务路由到第一负载水位最低的任务管理单元。
均衡路由的过程包括:添加一个任务的时候根据现有的任务管理单元的负载情况均衡路由到目标节点,进而均衡路由到任务管理单元中;如果添加该任务的触发器,则将该触发器添加到所属任务的任务管理单元中。此外,添加任务的时候,会根据任务的负载以及任务管理单元目前的负载情况,决定将该任务分配到哪个管理单元中,即实现了集群下按照负载进行动态路由任务,实现集群负载均衡,提高了集群吞吐量。
本发明提供的基于quartz的分布式任务调度方法,应用于上述实施例一提供的基于quartz的分布式任务调度系统,通过对quartz的任务管理单元及数据库的扩展,减轻了单个任务管理单元和quartz内核的负荷,不再受限于quartz的性能瓶颈问题,并且在不增加应用端工作负荷的同时能够在控制面管控任务路由。与现有技术相比,本发明实施例提供的基于quartz的分布式任务调度方法的有益效果与上述实施例一提供的基于quartz的分布式任务调度系统的有益效果相同,在此不做赘述。
实施例三
一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例二中的基于quartz的分布式任务调度方法,包括:对quartz服务引擎中的任务管理单元预设第一负载阈值,其中,每个所述quartz服务引擎的内核包括多个任务管理单元,且所述quartz服务引擎中任务管理单元的数据存储到与所述quartz服务引擎对应的数据库中;利用协调器监控任务管理单元的第一负载水位,并在所述协调器监控到任一所述任务管理单元的第一负载水位达到所述第一负载阈值时,动态扩展新的任务管理单元,并使所述新的任务管理单元的配置与第一负载水位达到第一负载阈值的任务管理单元的配置相同。
本发明实施例提供的计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
或者,上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本发明提供的计算机可读存储介质,存储有用于执行上述基于quartz的分布式任务调度方法的计算机可读程序指令,既能不再受限于quartz的性能瓶颈问题,又不需要将任务调度逻辑放在应用端,能在控制面统一管控任务。与现有技术相比,本发明实施例提供的计算机可读存储介质的有益效果与上述实施例提供的基于quartz的分布式任务调度方法的有益效果相同,在此不做赘述。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种基于quartz的分布式任务调度系统,由协调器和多个quartz服务引擎集成,其特征在于,每个所述quartz服务引擎的内核包括多个任务管理单元,所述任务管理单元预设有第一负载阈值;所述协调器用于监控所述任务管理单元的第一负载水位,以及用于在任一所述任务管理单元的第一负载水位达到所述第一负载阈值时,动态扩展新的任务管理单元,其中,所述新的任务管理单元的配置与第一负载水位达到第一负载阈值的任务管理单元的配置相同;
每个所述quartz服务引擎对应一个数据库,所述数据库用于存储对应的quartz服务引擎中任务管理单元的数据;
所述quartz服务引擎预设有第二负载阈值,所述协调器还用于监控所述quartz服务引擎的第二负载水位,以及用于当任一所述quartz服务引擎的第二负载水位达到所述第二负载阈值时,扩展一组新的quartz服务引擎及新的数据库;
其中,所述新的quartz服务引擎与第二负载水位达到第二负载阈值的quartz服务引擎的配置相同。
2.根据权利要求1所述的基于quartz的分布式任务调度系统,其特征在于,所述协调器还用于基于所述quartz服务引擎的第二负载水位和所述任务管理单元的第一负载水位,将任务均衡路由到任务管理单元中。
3.一种基于quartz的分布式任务调度方法,其特征在于,包括:
对quartz服务引擎中的任务管理单元预设第一负载阈值,其中,每个所述quartz服务引擎的内核包括多个任务管理单元,且所述quartz服务引擎中任务管理单元的数据存储到与所述quartz服务引擎对应的数据库中;
利用协调器监控任务管理单元的第一负载水位,并在所述协调器监控到任一所述任务管理单元的第一负载水位达到所述第一负载阈值时,动态扩展新的任务管理单元,并使所述新的任务管理单元的配置与第一负载水位达到第一负载阈值的任务管理单元的配置相同;
对所述quartz服务引擎预设第二负载阈值;利用协调器监控quartz服务引擎的第二负载水位,并在所述协调器监控到任一所述quartz服务引擎的第二负载水位达到所述第二负载阈值时,动态扩展新的quartz服务引擎,并使所述新的quartz服务引擎的配置与第二负载水位达到第二负载阈值的quartz服务引擎的配置相同。
4.根据权利要求3所述的基于quartz的分布式任务调度方法,其特征在于,所述任务管理单元的第一负载水位是基于所述任务管理单元中每个任务的频率计算得到的;
所述quartz服务引擎的第二负载水位是基于内核中所有任务管理单元的第一负载水位计算得到的。
5.根据权利要求3所述的基于quartz的分布式任务调度方法,其特征在于,还包括:利用协调器基于所述quartz服务引擎的第二负载水位和所述任务管理单元的第一负载水位,将任务均衡路由到任务管理单元中。
6.根据权利要求5所述的基于quartz的分布式任务调度方法,其特征在于,利用协调器将任务均衡路由到任务管理单元中的方法包括:
获取第二负载水位最低的quartz服务引擎;
从所述第二负载水位最低的quartz服务引擎中获取第一负载水位最低的任务管理单元,将任务路由到所述第一负载水位最低的任务管理单元。
7.一种计算机可读存储介质,其特征在于,具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行权利要求3-6中任一项所述的基于quartz的分布式任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110738065.6A CN113485828B (zh) | 2021-06-30 | 2021-06-30 | 基于quartz的分布式任务调度系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110738065.6A CN113485828B (zh) | 2021-06-30 | 2021-06-30 | 基于quartz的分布式任务调度系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113485828A CN113485828A (zh) | 2021-10-08 |
CN113485828B true CN113485828B (zh) | 2024-02-09 |
Family
ID=77936838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110738065.6A Active CN113485828B (zh) | 2021-06-30 | 2021-06-30 | 基于quartz的分布式任务调度系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113485828B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048760A (zh) * | 2023-02-06 | 2023-05-02 | 杭州雷数科技有限公司 | 一种多源任务调度动态调度算法系统的实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9910704B1 (en) * | 2016-12-01 | 2018-03-06 | International Business Machines Corporation | Run time task scheduling based on metrics calculated by micro code engine in a socket |
CN111984393A (zh) * | 2020-10-12 | 2020-11-24 | 浙江大华技术股份有限公司 | 分布式大规模实时数据调度引擎系统及其数据调度方法 |
CN112379995A (zh) * | 2021-01-11 | 2021-02-19 | 北京江融信科技有限公司 | 一种基于dag的单元化分布式调度系统及方法 |
-
2021
- 2021-06-30 CN CN202110738065.6A patent/CN113485828B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9910704B1 (en) * | 2016-12-01 | 2018-03-06 | International Business Machines Corporation | Run time task scheduling based on metrics calculated by micro code engine in a socket |
CN111984393A (zh) * | 2020-10-12 | 2020-11-24 | 浙江大华技术股份有限公司 | 分布式大规模实时数据调度引擎系统及其数据调度方法 |
CN112379995A (zh) * | 2021-01-11 | 2021-02-19 | 北京江融信科技有限公司 | 一种基于dag的单元化分布式调度系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113485828A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713088B2 (en) | Event-driven scheduling using directed acyclic graphs | |
US10338958B1 (en) | Stream adapter for batch-oriented processing frameworks | |
CN108664496B (zh) | 数据迁移方法及装置 | |
US10338964B1 (en) | Computing node job assignment for distribution of scheduling operations | |
WO2019037203A1 (zh) | 应用程序的性能测试方法、装置、计算机设备和存储介质 | |
CN105007323A (zh) | 一种云资源的编排系统和方法 | |
US11144432B2 (en) | Testing and reproduction of concurrency issues | |
CN107729138B (zh) | 一种高性能分布式矢量空间数据的分析方法和装置 | |
US20200159565A1 (en) | Predicting transaction outcome based on artifacts in a transaction processing environment | |
US10303678B2 (en) | Application resiliency management using a database driver | |
CN107704310B (zh) | 一种实现容器集群管理的方法、装置和设备 | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN109298937A (zh) | 文件解析方法及网络设备 | |
US20200394080A1 (en) | Load distribution for integration scenarios | |
CN113485828B (zh) | 基于quartz的分布式任务调度系统及方法 | |
CN111258726A (zh) | 任务调度方法和装置 | |
US11327788B2 (en) | Methods for scheduling multiple batches of concurrent jobs | |
CN105827744A (zh) | 云存储平台的数据处理方法 | |
US8527747B2 (en) | Future system that can participate in systems management activities until an actual system is on-line | |
CN111552494B (zh) | 一种容器组的管理方法、设备、系统及介质 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
CN114564530A (zh) | 一种数据库访问方法、装置、设备及存储介质 | |
CN111858234A (zh) | 一种任务执行方法、装置、设备、介质 | |
RU2591020C1 (ru) | Способ контроля хода выполнения программы пользователя, исполняющейся на вычислительных узлах вычислительной системы |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |