CN111475275A - 一种调度方法及调度服务器 - Google Patents
一种调度方法及调度服务器 Download PDFInfo
- Publication number
- CN111475275A CN111475275A CN202010424467.4A CN202010424467A CN111475275A CN 111475275 A CN111475275 A CN 111475275A CN 202010424467 A CN202010424467 A CN 202010424467A CN 111475275 A CN111475275 A CN 111475275A
- Authority
- CN
- China
- Prior art keywords
- data
- monitoring
- task
- rule
- monitoring rule
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012544 monitoring process Methods 0.000 claims abstract description 223
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 31
- 230000001960 triggered effect Effects 0.000 claims description 18
- 101150039208 KCNK3 gene Proteins 0.000 description 12
- 101150083764 KCNK9 gene Proteins 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- -1 Task2 Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 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/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
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种调度方法及调度服务器,方法包括:当确定多个工作任务与同一份数据具有依赖关系时,通过一份监控任务监控该份数据;当确定该份数据满足其对应的监控规则时,执行多个工作任务之中上游的工作任务;下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件。无需为多个工作任务分别采用不同监控任务进行监控。相比于现有技术,将调度环节中以任务为粒度的监控转变为以数据为粒度的监控,节省调度消耗的资源。下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件,因此,提升了调度执行结果的正确率。
Description
技术领域
本申请涉及计算机领域,特别是涉及一种调度方法及调度服务器。
背景技术
工作流(Workflow)是对工作流程及工作流程中各业务之间如何前后组织在一起的逻辑规则的抽象、概括、描述。工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的流程或角色,按照一定的规则和过程来执行这些流程并对其进行监控,达到提高工作效率、更好的控制过程、增强对用户的服务、有效管理业务流程等目的。
工作流的任务(Task)之间往往存在依赖关系,例如,任务B依赖于任务A的成功执行,任务C依赖于任务A的成功执行。目前现有的工作流调度***通常是按照时间点进行调度,对于任务之间多层依赖问题较难进行有效的调度解决。而且,即便解决了多层依赖的问题,也需要消耗较多的资源。例如,任务A、任务B和任务C均依赖于某一份数据D,在现有技术中,任务A、任务B和任务C需要分别独立配置监控任务来监控数据D,因此消耗较多的资源。此外,由于现有的工作流调度***往往仅着眼于任务,因此难以保证调度后任务执行结果的正确性。
发明内容
基于上述问题,本申请提供了一种调度方法及调度服务器,节省调度消耗的资源,提升任务执行结果的正确率。
本申请实施例公开了如下技术方案:
第一方面,本申请提供一种调度方法,包括:
当确定多个工作任务与同一份数据具有依赖关系时,通过监控任务监控该份数据;
当确定该份数据满足其对应的监控规则时,执行所述多个工作任务之中上游的工作任务;
下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件。
可选地,执行工作任务,具体包括:
解析消息体;所述消息体为当确定该份数据满足其对应的监控规则时构造的;
判断所述多个工作任务中是否包含待触发的工作任务;如果是,则执行所述待触发的工作任务,更新所述消息体的执行状态。
可选地,方法还包括:
获得数据监控规则文件,所述数据监控规则文件包括:工作任务与数据的依赖关系和每份数据对应的监控规则。
可选地,在所述获得数据监控规则文件之后,所述方法还包括:
将所述数据监控规则文件与规则库进行比较,当确定所述数据监控规则文件中包含所述规则库中未包含的新的数据监控规则时,将所述新的数据监控规则添加到所述规则库中。
可选地,方法还包括:
根据所述规则库所有监控规则的执行结果,确定该份数据对应的最优监控规则;
所述当确定该份数据满足其对应的监控规则时,执行所述多个工作任务,具体包括:
当确定该份数据满足其对应的最优监控规则时,执行所述多个工作任务。
第二方面,本申请提供一种调度服务器,包括:
数据监控模块,用于当确定多个工作任务与同一份数据具有依赖关系时,通过一份监控任务监控该份数据;任务执行模块,用于当确定该份数据满足其对应的监控规则时,执行所述多个工作任务之中上游的工作任务;下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件。
可选地,所述任务执行模块,具体包括:
解析单元,用于解析消息体;所述消息体为当确定该份数据满足其对应的监控规则时构造的;
判断单元,用于判断所述多个工作任务中是否包含待触发的工作任务;
执行单元,用于当所述判断单元判断的结果为是时,执行所述待触发的工作任务;
更新单元,用于当所述执行单元对所述待触发的工作任务执行完成时,更新所述消息体的执行状态。
可选地,调度服务器还包括:文件接入模块,用于获得数据监控规则文件,所述数据监控规则文件包括:工作任务与数据的依赖关系和每份数据对应的监控规则;
可选地,调度服务器还包括:
规则更新模块,用于将所述数据监控规则文件与规则库进行比较,当确定所述数据监控规则文件中包含所述规则库中未包含的新的数据监控规则时,将所述新的数据监控规则添加到所述规则库中。
可选地,调度服务器还包括:
最优规则确定模块,用于根据所述规则库所有监控规则的执行结果,确定该份数据对应的最优监控规则;
所述任务执行模块,具体用于当确定该份数据满足其对应的最优监控规则时,执行所述多个工作任务。
可选地,所述调度服务器为调度服务***分布式部署的多个调度服务器之一。
相较于现有技术,本申请具有以下有益效果:
本申请提供的调度方法,包括:当确定多个工作任务与同一份数据具有依赖关系时,通过一份监控任务监控该份数据;当确定该份数据满足其对应的监控规则时,执行多个工作任务之中上游的工作任务;下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件。相应地,本申请还提供了一种调度服务器。在本申请中,多个工作任务与同一份数据具有依赖关系时,无需为多个工作任务分别采用不同监控任务进行监控。相比于现有技术,将调度环节中以任务为粒度的监控转变为以数据为粒度的监控,因此节省了调度消耗的资源。另外,由于本申请中监控粒度为数据而非任务,且下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件,因此,提升了调度执行结果的正确率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种调度方法的应用场景示意图;
图2为本申请实施例提供的一种调度方法的流程图;
图3为本申请实施例提供的另一种调度方法的流程图;
图4A为本申请实施例提供的一种调度服务器的结构示意图;
图4B为本申请实施例提供的另一种调度服务器的结构示意图;
图5为本申请实施例提供的一种调度***的结构示意图。
具体实施方式
正如前文描述,目前的工作流调度***往往仅着眼于任务,因此难以保证调度后任务执行结果的正确性,并且调度过程需要消耗较多的资源。
基于此问题,发明人经过研究,于本申请提供一种调度方法及调度服务器。当确定多个工作任务与同一份数据具有依赖关系时,通过一份监控任务监控该份数据;当确定该份数据满足其对应的监控规则时,执行与该分数据具有依赖关系的多个工作任务之中上游的工作任务。下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件。节省调度消耗的资源,并提升了任务执行的正确率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,该图为本申请实施例提供的调度方法的应用场景示意图。该方法在Kubernetes(简称K8s)开源***上实现。场景中可以包含三个组成部分:面向用户业务使用的入口服务101、数据监控服务102以及任务执行服务103。其中,入口服务101、数据监控服务102和任务执行服务103均可以部署在私有云上,各项服务的稳定性和监控性能均由私有云保证。在实际应用中,入口服务101可以是一个WEB服务端,包含多个前端页面并面向用户。任务执行服务103又可称为工作节点,场景中的任务执行服务103的数量可以为多个。
在该场景中,用户可以通过入口服务101向监控服务102提供数据监控规则文件;监控服务102与任务执行服务103之间通过消息队列传递消息。场景中还可以包括一个数据存储服务104,例如Mysql,该数据存储服务104可以存储以下至少一种:监控规则,数据的检测方式,路径,检测到以后任务的执行命令,任务之间的上下游关系等。
需要说明的是,在进行监控时,可以依据数据监控规则文件中数据对应的监控规则进行监控。如果在数据存储服务104中存储了规则库,库中包含了待监控的该份数据对应的监控规则,则无需临时通过入口服务101接收数据监控规则文件。
下面结合实施例和附图描述本申请提供的调度方法的实现方式。
参见图2,该图为本申请实施例提供的一种调度方法的流程图。
如图2所示,该调度方法包括:
步骤201:当确定多个工作任务与同一份数据具有依赖关系时,通过一份监控任务监控该份数据。
在工作流的任务执行之前,有必要对任务依赖的数据进行监控。此处监控可以涉及对数据的完整性、正确性的监控,还可能涉及对数据的其他方面的监控。假设第一工作任务Task1、第二工作任务Task2和第三工作任务Task3均依赖第一份数据Data1,针对Task1、Task2和Task3的执行,在本步骤中可以通过一份监控任务T1来监控Data1。
实际应用中,如果本步骤之前预先获得了数据监控规则文件,由于其中包括工作任务与数据的依赖关系和每份数据对应的监控规则,则可以根据该数据监控规则文件确定工作任务与数据的依赖关系。
在本申请实施例中,步骤201可以通过图1所示场景中的监控服务102实现。
步骤202:当确定该份数据满足其对应的监控规则时,执行所述多个工作任务之中上游的工作任务;下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件。
本步骤可以通过图1所示场景中的任务执行服务103实现。
为便于理解多个工作任务的执行过程,下面通过示例进行说明。
假设Task1、Task2和Task3均依赖同一份数据Data1。其中,Task2的执行依赖于Task1的成功执行以及Task1的产出数据;Task3的执行依赖于Task2的成功执行以及Task2的产出数据。数据Data1作为Task1的输入数据,Task1位于Task2的上游,Task3位于Task2的下游。
在任务执行过程中,如果数据Data1满足其对应的监控规则,则执行Task1。Task1执行后,监控数据Data1的监控任务T1会继续监控Task1的产出数据是否符合该产出数据对应的监控规则。如果是,则表示Task1的产出数据正确。Task1确定其下游有待触发的Task2,即可执行Task2。以此类推。Task2执行后,监控数据Data1的监控任务T1会继续监控Task2的产出数据是否符合该产出数据对应的监控规则。如果是,则表示Task2的产出数据正确。Task2确定其下游有待触发的Task3,即可执行Task3。
在本申请实施例提供的调度方法中,多个工作任务与同一份数据具有依赖关系时,无需为多个工作任务分别采用不同监控任务进行监控。相比于现有技术,将调度环节中以任务为粒度的监控转变为以数据为粒度的监控,因此节省了调度消耗的资源。另外,由于本申请中监控粒度为数据而非任务,且下游的工作任务的执行以其上游的工作任务的产出数据满足所述监控规则作为触发条件,因此,提升了调度执行结果的正确率。
在前述实施例的基础上,本申请进一步提供了另一种调度方法。参见图3,该图为该调度方法的流程图。如图3所示,该调度方法包括:
步骤301:获得数据监控规则文件。
为了进行数据监控,本实施例方法首先获得数据监控规则该文件。
本申请实施例中,数据监控规则文件具体可以由用户提供。例如,预先配置了面向用户的数据传输入口,例如图1所示场景中的入口服务101。通过该入口接收用户的客户端上传的数据监控规则文件。本申请实施例中,数据监控规则文件至少包括:工作任务与数据的依赖关系和每份数据对应的监控规则。数据监控规则文件可以是由用户自定义的。
作为示例,数据监控规则中,第一工作任务Task1与数据Data1存在依赖关系;第四工作任务Task4与数据Data2存在依赖关系。Data1对应监控规则R1,Data2对应监控规则R2,即监控Data1时需要采用R1,监控Data2时需要采用R2。需要说明的是,此处所说的监控规则可以是一个或多个约束条件。
获得数据监控规则文件后,可以将其存储到图1所示场景中的数据存储服务104中。
实际应用中,可以预先根据历史提供的数据监控规则文件构建了规则库。步骤301获得的数据监控规则文件中的监控规则相对于规则库中监控规则,属于新增的监控规则。为了防止冗余存储耗用不必要的存储资源,以及为了提升数据监控可靠性、监控效率等,执行以下步骤302。
步骤302:将数据监控规则文件与规则库进行比较,当确定所述数据监控规则文件中包含所述规则库中未包含的新的数据监控规则时,将所述新的数据监控规则添加到所述规则库中。
通过将步骤301获得的数据监控规则文件与规则库进行比较,实现对监控规则的合并,例如数据监控规则文件中与规则库的监控规则一致的,将不会添加到规则库中。另外,在比较过程中,还可以对监控规则进行归纳。例如,按照监控规则的类型进行归纳。
步骤303:当确定多个工作任务与同一份数据具有依赖关系时,通过一份监控任务监控该份数据。
实际应用中,该监控任务可以是临时为该份数据配置的监控任务;也可以是预先配置好的监控任务,可以临时调用。此外,该监控任务还可监控依赖该数据的每个工作任务的产出数据是否满足各自对应的监控规则。
步骤304:根据所述规则库所有监控规则的执行结果,确定该份数据对应的最优监控规则。
实际应用中,对于某一份数据,在任何监控规则的最优执行结果均会被缓存。当规则库中针对该份数据有新的监控规则加入,则利用该新的监控规则获取执行结果,并获取利用该新的监控规则的最优执行结果并缓存,触发对缓存的更新。进而,当需要对数据进行监控时,可以根据规则库所有监控规则的最优执行结果,确定该份数据对应的最优监控规则。
此处对确定最优监控规则的实现方式不进行限定。作为示例,可以根据各个监控规则的最优执行结果的数值比较结果或稳定性评价结果等,来确定最优监控规则。
实际应用中,对步骤303和304的相对执行顺序不进行限定。例如可以确定出最优监控规则后,令监控任务按照该最优监控规则进行监控。
步骤305:确定该份数据满足其对应的最优监控规则时,构造该份数据对应的消息体。
监控服务102构造并发送完该份数据对应的消息体后可以将消息体发往Redis消息队列。对于多个工作任务中的第一个工作任务,监控共同依赖的该数据满足最优监控规则即构造消息体。对于其下游的工作任务,监控上游工作任务的产出数据满足该产出数据对应的最优监控规则,即构造消息体。
步骤306:解析所述消息体。
任务执行服务103从Redis消息队列通讯,消费上游(即监控服务102)下发的消息体,解析获得其中的监控结果。
步骤307:判断所述多个工作任务中是否包含待触发的工作任务,如果是,则执行步骤308。
判断第一个工作任务依赖的数据是否满足其对应的数据监控规则,如果是,则触发该第一个工作任务;对于第一个工作任务下游的工作任务,判断该第一个工作任务的产出数据是否满足该产出数据对应的监控规则,如果是,且第一个工作任务执行成功,则执行该下游的工作任务。以此类推。
需要说明的是,每个上游的工作任务下挂由至少一个下游的工作任务。当上游的工作任务执行完成,即会在该工作任务的文件夹下生成文件,记录了产出数据。监控其产出数据即是监控该文件。通常,产出数据的监控规则与其下游的工作任务对该文件的要求有关,例如格式要求。
步骤308:执行待触发的工作任务,更新所述消息体的执行状态。
步骤308之后,任务执行服务103还可以向监控服务102上报自身的工作状态。
实际应用中,可能存在节点崩溃的故障问题。消息队列中的消息有可能丢失,丢失的消息中可能包括:消费到但是未被处理的消息。数据库中存储着完整的与工作任务执行相关的数据,因此,在消息队列中消息丢失的情况下,为了避免漏执行工作任务,可以实施以下步骤:
1)先查看是数据库中否存在以前消费到的没有处理的消息;如果是,则需要执行下一步,如果否,则表示以前消费到的消息均已处理完毕。
2)解析消费到的消息体;
3)判断是否存在需要触发的任务(需要触发的任务其上游的工作任务的产出数据满足该产出数据对应的监控规则),如果否,则跳过此消息;如果是,则执行此任务配置的执行命令。
4)执行后更新当前消息体的执行状态。
通过执行以上操作,避免在消息队列丢失消息的情况下,遗漏执行工作任务。由于每个任务执行服务103消费到的消息不同,执行时间也不尽相同。如果上游(监控服务102)提供的消息体数量突然增大,也不会压垮各个任务执行服务103。每一个任务执行服务103都是在自身执行完当前的消息才去消费下一个。
如果希望提高对消息的消费速度,可以增加场景中的任务执行服务103的数量。
需要说明的是,在执行工作任务的过程中,下游的工作任务的执行以其上游的工作任务的产出数据满足所述监控规则作为触发条件。从而保证了任务执行结果的正确性。
在以上实施例提供的调度方法中,将数据监控与任务执行分开了。任务执行服务103通过消息队列与监控服务102通讯,消费监控到的数据信号,执行相关任务。任务执行服务103可以部署在同一机器上,也可以扩展,部署在不同的服务器上。
通过优化合并规则库和新获得的数据监控规则文件之中的规则,避免占用不必要的存储资源。通过确定最优监控规则,提升对数据进行监控的稳定性和可靠性。另外,任务执行服务103查看是否存在以前消费到的没有处理的消息的操作,更新执行状态的操作和上报自身工作状态的操作,均有利于保障工作流的工作任务的顺利执行,减少出错率。
基于前述实施例提供的调度方法,相应地,本申请还提供一种调度服务器。下面结合实施例和附图介绍该调度服务器的实现方式。
参见图4A,该图为本申请实施例提供的一种调度服务器的结构示意图。
如图4A所示,该调度服务器400A包括:数据监控模块402和任务执行模块403。
数据监控模块402,用于当确定多个工作任务与同一份数据具有依赖关系时,通过一份监控任务监控该份数据;
任务执行模块403,用于当确定该份数据满足其对应的监控规则时,执行所述多个工作任务之中上游的工作任务。下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的所述监控规则作为触发条件。
在本申请中,多个工作任务与同一份数据具有依赖关系时,无需为多个工作任务分别采用不同监控任务进行监控。相比于现有技术,将调度环节中以任务为粒度的监控转变为以数据为粒度的监控,因此节省了调度消耗的资源。另外,由于本申请中监控粒度为数据而非任务,且下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件,因此,提升了调度执行结果的正确率。
可选地,所述任务执行模块403,具体包括:
解析单元,用于解析消息体;所述消息体为当确定该份数据满足其对应的监控规则时构造的;
判断单元,用于判断所述多个工作任务中是否包含待触发的工作任务;
执行单元,用于当所述判断单元判断的结果为是时,执行所述待触发的工作任务;
更新单元,用于当所述执行单元对所述待触发的工作任务执行完成时,更新所述消息体的执行状态。
可选地,调度服务器还包括:文件接入模块401,用于获得数据监控规则文件,所述数据监控规则文件包括:工作任务与数据的依赖关系和每份数据对应的监控规则。参见图4B,图4B中所示的调度服务器400B的数据监控模块402连接文件接入模块401。
可选地,调度服务器400A或400B还包括:
规则更新模块,用于将所述数据监控规则文件与规则库进行比较,当确定所述数据监控规则文件中包含所述规则库中未包含的新的数据监控规则时,将所述新的数据监控规则添加到所述规则库中。
可选地,调度服务器400A或400B还包括:
最优规则确定模块,用于根据所述规则库所有监控规则的执行结果,确定该份数据对应的最优监控规则;
所述任务执行模块403,具体用于当确定该份数据满足其对应的最优监控规则时,执行所述多个工作任务。
可选地,所述文件接入模块401,具体用于从客户端获得用户自定义的所述数据监控规则文件。
图4A或图4B所示的调度服务器400A为调度服务***分布式部署的多个调度服务器之一。参见图5,该图为一种调度服务***的结构示意图。在图5中,调度服务***500包括多个分布式部署的调度服务器。其中,可以包括一个与调度服务器400A或调度服务器400B的结构一致的调度服务器500A,其他的调度服务器500B则可以仅包括任务执行模块403。调度服务器500B的任务执行模块403可以与调度服务器500A的数据监控模块402通过消息队列进行通讯。
该***可以采用Docker+k8s的部署方式,每个调度服务器500A和500B均可以为私有云服务器,实现一键部署和稳定运行。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及***实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (11)
1.一种调度方法,其特征在于,包括:
当确定多个工作任务与同一份数据具有依赖关系时,通过监控任务监控该份数据;
当确定该份数据满足其对应的监控规则时,执行所述多个工作任务之中上游的工作任务;
下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件。
2.根据权利要求1所述的调度方法,其特征在于,执行工作任务,具体包括:
解析消息体;所述消息体为当确定该份数据满足其对应的监控规则时构造的;
判断所述多个工作任务中是否包含待触发的工作任务;如果是,则执行所述待触发的工作任务,更新所述消息体的执行状态。
3.根据权利要求1所述的调度方法,其特征在于,还包括:
获得数据监控规则文件,所述数据监控规则文件包括:工作任务与数据的依赖关系和每份数据对应的监控规则。
4.根据权利要求3所述的调度方法,其特征在于,在所述获得数据监控规则文件之后,所述方法还包括:
将所述数据监控规则文件与规则库进行比较,当确定所述数据监控规则文件中包含所述规则库中未包含的新的数据监控规则时,将所述新的数据监控规则添加到所述规则库中。
5.根据权利要求4所述的调度方法,其特征在于,还包括:
根据所述规则库所有监控规则的执行结果,确定该份数据对应的最优监控规则;
所述当确定该份数据满足其对应的监控规则时,执行所述多个工作任务,具体包括:
当确定该份数据满足其对应的最优监控规则时,执行所述多个工作任务。
6.一种调度服务器,其特征在于,包括:
数据监控模块,用于当确定多个工作任务与同一份数据具有依赖关系时,通过一份监控任务监控该份数据;任务执行模块,用于当确定该份数据满足其对应的监控规则时,执行所述多个工作任务之中上游的工作任务;下游的工作任务的执行以其上游的工作任务的产出数据满足该产出数据对应的监控规则作为触发条件。
7.根据权利要求6所述的调度服务器,其特征在于,所述任务执行模块,具体包括:
解析单元,用于解析消息体;所述消息体为当确定该份数据满足其对应的监控规则时构造的;
判断单元,用于判断所述多个工作任务中是否包含待触发的工作任务;
执行单元,用于当所述判断单元判断的结果为是时,执行所述待触发的工作任务;
更新单元,用于当所述执行单元对所述待触发的工作任务执行完成时,更新所述消息体的执行状态。
8.根据权利要求6所述的调度服务器,其特征在于,还包括:文件接入模块,用于获得数据监控规则文件,所述数据监控规则文件包括:工作任务与数据的依赖关系和每份数据对应的监控规则。
9.根据权利要求8所述的调度服务器,其特征在于,还包括:
规则更新模块,用于将所述数据监控规则文件与规则库进行比较,当确定所述数据监控规则文件中包含所述规则库中未包含的新的数据监控规则时,将所述新的数据监控规则添加到所述规则库中。
10.根据权利要求9所述的调度服务器,其特征在于,还包括:
最优规则确定模块,用于根据所述规则库所有监控规则的执行结果,确定该份数据对应的最优监控规则;
所述任务执行模块,具体用于当确定该份数据满足其对应的最优监控规则时,执行所述多个工作任务。
11.根据权利要求6-10任一项所述的调度服务器,其特征在于,所述调度服务器为调度服务***分布式部署的多个调度服务器之一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010424467.4A CN111475275A (zh) | 2020-05-19 | 2020-05-19 | 一种调度方法及调度服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010424467.4A CN111475275A (zh) | 2020-05-19 | 2020-05-19 | 一种调度方法及调度服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111475275A true CN111475275A (zh) | 2020-07-31 |
Family
ID=71762794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010424467.4A Pending CN111475275A (zh) | 2020-05-19 | 2020-05-19 | 一种调度方法及调度服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475275A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949326A (zh) * | 2020-08-03 | 2020-11-17 | 杭州当虹科技股份有限公司 | 一种基于Activiti的微服务工作流方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090248641A1 (en) * | 2008-03-25 | 2009-10-01 | Ning Duan | Method and apparatus for detecting anomalistic data record |
CN108388495A (zh) * | 2018-01-10 | 2018-08-10 | 链家网(北京)科技有限公司 | 一种数据监控方法及*** |
CN108491254A (zh) * | 2018-02-07 | 2018-09-04 | 链家网(北京)科技有限公司 | 一种数据仓库的调度方法及装置 |
CN110019158A (zh) * | 2017-11-13 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种监控数据质量的方法和装置 |
-
2020
- 2020-05-19 CN CN202010424467.4A patent/CN111475275A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090248641A1 (en) * | 2008-03-25 | 2009-10-01 | Ning Duan | Method and apparatus for detecting anomalistic data record |
CN110019158A (zh) * | 2017-11-13 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种监控数据质量的方法和装置 |
CN108388495A (zh) * | 2018-01-10 | 2018-08-10 | 链家网(北京)科技有限公司 | 一种数据监控方法及*** |
CN108491254A (zh) * | 2018-02-07 | 2018-09-04 | 链家网(北京)科技有限公司 | 一种数据仓库的调度方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949326A (zh) * | 2020-08-03 | 2020-11-17 | 杭州当虹科技股份有限公司 | 一种基于Activiti的微服务工作流方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9542291B2 (en) | Self-monitoring event-based system and method | |
US10095547B1 (en) | Stream processing at scale | |
US20190238437A1 (en) | Flexible and safe monitoring of computers | |
CN107924359B (zh) | 计算***中的故障情况的管理 | |
Meng et al. | State monitoring in cloud datacenters | |
US9317395B2 (en) | Usage reporting from a cloud-hosted, distributed system | |
US8930521B2 (en) | Method, apparatus, and computer program product for enabling monitoring of a resource | |
US20080235365A1 (en) | Automatic root cause analysis of performance problems using auto-baselining on aggregated performance metrics | |
US8453165B2 (en) | Distributing event processing in event relationship networks | |
US11349909B2 (en) | Microservice manager and optimizer | |
US10419553B2 (en) | Dynamic docker pool recycling | |
US8516295B2 (en) | System and method of collecting and reporting exceptions associated with information technology services | |
CN112507029A (zh) | 数据处理***及数据实时处理方法 | |
US10936375B2 (en) | Hyper-converged infrastructure (HCI) distributed monitoring system | |
EP3011474A1 (en) | Monitoring a computing network | |
US10650079B2 (en) | Resource cache classification using machine learning | |
WO2022063032A1 (zh) | 一种面向分布式***的故障信息关联上报方法及相关设备 | |
Meng et al. | Monitoring continuous state violation in datacenters: Exploring the time dimension | |
CN111400041A (zh) | 服务器配置文件的管理方法、装置及计算机可读存储介质 | |
Sandur et al. | Jarvis: Large-scale server monitoring with adaptive near-data processing | |
JP2007199956A (ja) | ロギング情報管理方法およびロギング情報管理システム | |
CN111475275A (zh) | 一种调度方法及调度服务器 | |
US20170010948A1 (en) | Monitoring a computing environment | |
JP2005128866A (ja) | 計算機装置及び計算機装置の制御方法 | |
Hummer et al. | Dynamic migration of processing elements for optimized query execution in event-based systems |
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: 20200731 |