CN107766144A - 一种任务调度方法、装置及*** - Google Patents
一种任务调度方法、装置及*** Download PDFInfo
- Publication number
- CN107766144A CN107766144A CN201610682892.7A CN201610682892A CN107766144A CN 107766144 A CN107766144 A CN 107766144A CN 201610682892 A CN201610682892 A CN 201610682892A CN 107766144 A CN107766144 A CN 107766144A
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- data
- genetic connection
- input
- 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.)
- Withdrawn
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/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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
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
技术领域
本发明涉及大数据分析及处理领域,特别涉及一种任务调度方法、装置及***。
背景技术
目前随着数据***式的增长,大数据资产管理的地位越来越高。大数据资产管理是规划、控制、和提供数据这种企业资产的一组业务职能,包括开发、执行和监督有关数据的计划、政策、方案、项目、流程、方案和程序。企业依赖有效数据资产管理为其提供可靠、有价值和高质量的数据,提供更好的产品和服务,降低开发和运维成本,控制风险,以及为企业提供更明智和更有效的决策数据支持。
大数据应用***中大数据集群任务执行的核心问题是任务的调度。常见的大数据应用***使用定时执行的方式来实现任务的调度;也有通过计划的方式实现任务的调度,事先定义任务执行的先后顺序,例如定义工作流方式。
使用定时和计划的方式有自身的缺陷,比如使用定时执行的方式,在生产环境中定时的时间很难确定,需要根据历史经验设置一个最晚时间。如果不同的任务有相互依赖关系,需要对时间先后有一个准确安排,随着任务的增多,这个安排将变得异常难控制。而且对于现场当天的实时情况适应性很差;使用工作流的方式,需要预先制定整个工作流,对于***的需求变化的响应性差,需要人工重新编排顺序,而且对于整个工作流需要整体条件满足才可以执行,***的实时资源管理和性能实时优化等方面均存在缺点。
发明内容
本发明提供了一种任务调度的方法、装置及***,其目的是为了解决目前大数据应用***任务安排需要人工干预的问题以及任务不能响应实时数据的问题。
为了达到上述目的,本发明的实施例提供了一种任务调度方法,包括:
扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;
将所述第二队列中的任务提交到第三队列;
所述第三队列中的任务执行完毕后,更新所述第一队列。
优选的,所述预设条件为第一队列中的任务依赖的数据全部到达。
优选的,所述在扫描第一队列中的任务之前,还包括初始化第一队列。
优选的,所述的初始化第一队列包括:
根据数据表和任务之间的输入、输出的依赖关系生成血缘关系图,所述血缘关系图为有向无环图DAG;
从血缘关系图中识别出***输入表放入到第一集合,所述***输入表是指不需要等待任意一个任务的输出数据的表;
从血缘关系图中识别出边界任务放入第一队列,所述边界任务是指该任务的输入表全部是***输入表。
优选的,确定所述第一队列中的任务依赖的数据全部到达包括:
按照第一预设周期检查第一集合中各***输入表的数据,将数据完全到达的***输入表标记为就绪状态,和/或;
按照第二预设周期检查第一队列中的各任务,任务所依赖的全部***输入表为就绪状态表示该任务依赖的全部数据到达。
优选的,所述的第三队列中的任务执行完毕后,更新所述第一队列包括:
重新识别血缘关系图中的***输入表并更新第一集合;
重新识别血缘关系图中的边界任务并更新第一队列。
优选的,将所述第二队列中的任务提交到第三队列是按照任务的优先级顺序提交,任务的优先级由***输出表的优先级确定;***输出表具有优先级,生成***输出表的前序任务和前序数据表具有和该***输出表相同优先级;
其中,所述***输出表是指整个***没有任意一个任务的输入数据依赖该表,所述前序任务是指血缘关系图中处于***输出表前驱顶点的任务,所述前序数据表是指血缘关系图中处于***输出表前驱顶点的表。
为了达到上述目的,本发明的实施例提供了一种任务调度装置,包括:
调度单元,用于扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;
所述调度单元还用于将所述第二队列中的任务提交到第三队列;
执行单元,用于执行第三队列中的任务;
分析单元,用于任务执行完毕后更新第一队列。
优选的,所述调度单元用于将第一队列中符合预设条件的任务移入第二队列,所述预设条件为第一队列中的任务依赖的数据全部到达。
优选的,所述分析单元还用于初始化第一队列。
优选的,所述分析单元用于初始化第一队列包括:
根据数据表和任务之间的输入、输出的依赖关系生成血缘关系图,所述血缘关系图为有向无环图DAG;
从血缘关系图中识别出***输入表放入到第一集合,所述***输入表是指不需要等待任意一个任务的输出数据的表;
从血缘关系图中识别出边界任务放入第一队列,所述边界任务是指输入表全部是***输入表的任务。
优选的,所述调度单元,还用于确定所述第一队列中的任务依赖的数据全部到达,包括:
按照第一预设周期检查第一集合中各***输入表的数据,将数据完全到达的***输入表标记为就绪状态,和/或;
按照第二预设周期检查第一队列中的各任务,任务所依赖的全部***输入表为就绪状态表示该任务依赖的全部数据到达。
优选的,所述分析单元用于任务执行完毕后更新第一队列,包括:
重新识别血缘关系图中的***输入表并更新第一集合;
重新识别血缘关系图中的边界任务并更新第一队列。
优选的,所述调度单元用于将所述第二队列中的任务提交到第三队列是按照任务的优先级顺序提交,任务的优先级由***输出表的优先级确定;***输出表具有优先级,生成***输出表的前序任务和前序数据表具有和该***输出表相同优先级;
其中,所述***输出表是指整个***没有任意一个任务的输入数据依赖该表,所述前序任务是指血缘关系图中处于***输出表前驱顶点的任务,所述前序数据表是指血缘关系图中处于***输出表前驱顶点的表。
优选的,所述任务调度装置还包括:
配置单元,用于配置数据表和任务以及设置数据表和任务的依赖关系,并加载数据表和任务到分析单元。
为了达到上述目的,本发明的实施例提供了一种任务调度***,包括:
应用服务器节点,大数据集群;
应用***服务器节点,用于扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;将所述第二队列中的任务提交到第三队列;
大数据集群,用于执行第三队列中的任务;
所述应用***服务器节点,还用于任务执行完毕后更新第一队列。
优选的,还包括:
所述应用***服务器节点,还用于初始化第一队列。
优选的,还包括:
用户接口服务器节点,用于配置数据表和任务以及设置数据表和任务的依赖关系,并加载数据表和任务到应用服务器节点。
本发明的上述方案至少包括以下有益效果:
采用本发明所述的方法,通过扫描第一队列中的任务,将符合预设条件的任务在后续队列中转移并执行,在任务执行后更新第一队列,重新扫描第一队列中符合预设条件的任务的方法,实现了大数据应用***中任务的自动调度,免除了任务安排的人工干预,提高了整个***的利用率,节约了成本。
附图说明
图1为本发明实施例一提供的任务调度的方法流程示意图;
图2为本发明提供的任务调度方法使用的血缘关系图示意图;
图3为本发明提供的任务调度的方法执行过程中任务在数据驱动下在不同队列迁移情况示意图;
图4为本发明实施例二提供的任务调度的装置示意图;
图5为本发明实施例五提供的任务调度的方法流程示意图;
图6为本发明实施例五中检查***输入表是否已经完全到达的流程示意图;
图7为本发明提供的任务调度***示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的问题,提供了一种任务调度方法、装置及***:
实施例一
本实施例为数据集群环境下,通过实施本发明提供的方法,实现大数据应用***任务调度。
实施步骤如下:
参考图1,在步骤S101中,扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;
在步骤S102中,将所述第二队列中的任务提交到第三队列;
在步骤S103中,所述第三队列中的任务执行完毕后,更新所述第一队列。
所述第一队列中的各任务在预设条件的驱动下在队列间迁移,直到被执行完毕。当所述第三队列中有任务被执行完毕则更新第一队列,重复步骤S101到步骤S103,达到自动完成任务调度执行的目的。
优选的,所述预设条件为第一队列中的任务依赖的数据全部到达。
所述预设条件为任务依赖的数据全部到达使得所述大数据应用***中的任务调度可以实时对到达的数据做出响应,提高***工作效率。
优选的,所述在扫描第一队列中的任务之前,还包括初始化第一队列。
优选的,所述的初始化第一队列包括:
根据数据表和任务之间的输入、输出的依赖关系生成血缘关系图,所述血缘关系图为有向无环图DAG;
从血缘关系图中识别出***输入表放入到第一集合,所述***输入表是指不需要等待任意一个任务的输出数据的表;
从血缘关系图中识别出边界任务放入第一队列,所述边界任务是指输入表全部是***输入表的任务。
优选的,确定所述第一队列中的任务依赖的数据全部到达包括:
按照第一预设周期检查第一集合中各***输入表的数据,将数据完全到达的***输入表标记为就绪状态,和/或;
按照第二预设周期检查第一队列中的各任务,任务所依赖的全部***输入表为就绪状态表示该任务依赖的全部数据到达。
优选的,所述的第三队列中的任务执行完毕后,更新所述第一队列包括:
重新识别血缘关系图中的***输入表并更新第一集合,和/或;
重新识别血缘关系图中的边界任务并更新第一队列。
优选的,将所述第二队列中的任务提交到第三队列是按照任务的优先级顺序提交。任务的优先级由***输出表的优先级确定;***输出表具有优先级,生成***输出表的前序任务和前序数据表具有和该***输出表相同优先级;所述***输出表是指整个***没有任意一个任务的输入数据依赖该表,所述前序任务是指血缘关系图中处于***输出表前驱顶点的任务,所述前序数据表是指血缘关系图中处于***输出表前驱顶点的表。
优选的,本实施例以及以下实施例均可应用于Spark或Impala大数据集群环境。
采用本发明所述的方法,通过建立血缘关系图、分析血缘关系图识别***输入表和边界任务建立等待队列和通过边界任务数据到达检查实现数据驱动的任务调度,使得***能够实时对数据到达做出响应,通过血缘关系图中数据表和任务的依赖关系结合数据驱动任务调度可以更加合理地自动确定任务的执行先后顺序,尽可能充分地利用集群的***资源;从而不需要修改计划,实现快速灵活的响应变化,达到提升大数据集群易用性和性能提升的效果。
实施例二
本实施例提供一种任务调度装置,通过实施本发明提供的装置,实现大数据应用***任务调度。
该装置包括以下单元:
调度单元412,用于扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;
所述调度单元还用于将所述第二队列中的任务提交到第三队列;
执行单元414,用于执行第三队列中的任务;
分析单元413,用于任务执行完毕后更新第一队列。
优选的,所述调度单元用于将第一队列中符合预设条件的任务移入第二队列,所述预设条件为第一队列中的任务依赖的数据全部到达。
优选的,所述分析单元还用于初始化第一队列。
优选的,所述分析单元用于初始化第一队列包括:
根据数据表和任务之间的输入、输出的依赖关系生成血缘关系图,所述血缘关系图为有向无环图DAG;
从血缘关系图中识别出***输入表放入到第一集合,所述***输入表是指不需要等待任意一个任务的输出数据的表;
从血缘关系图中识别出边界任务放入第一队列,所述边界任务是指输入表全部是***输入表的任务。
优选的,所述调度单元,还用于确定所述第一队列中的任务依赖的数据全部到达,包括:
按照第一预设周期检查第一集合中各***输入表的数据,将数据完全到达的***输入表标记为就绪状态,和/或;
按照第二预设周期检查第一队列中的各任务,任务所依赖的全部***输入表为就绪状态表示该任务依赖的全部数据到达。
优选的,所述分析单元用于任务执行完毕后更新第一队列,包括:
重新识别血缘关系图中的***输入表并更新第一集合;
重新识别血缘关系图中的边界任务并更新第一队列。
优选的,所述调度单元用于将所述第二队列中的任务提交到第三队列是按照任务的优先级顺序提交,任务的优先级由***输出表的优先级确定;***输出表具有优先级,生成***输出表的前序任务和前序数据表具有和该***输出表相同优先级;
其中,所述***输出表是指整个***没有任意一个任务的输入数据依赖该表,所述前序任务是指血缘关系图中处于***输出表前驱顶点的任务,所述前序数据表是指血缘关系图中处于***输出表前驱顶点的表。
优选的,所述任务调度装置还包括:
配置单元,用于配置数据表和任务以及设置数据表和任务的依赖关系,并加载数据表和任务到分析单元。
优选的,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
实施例三
本实施例提供一种任务调度***,通过该***实现任务调度。
该***包括:
应用服务器节点,大数据集群;
应用***服务器节点,用于扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;还用于将所述第二队列中的任务提交到第三队列;
大数据集群,用于执行第三队列中的任务;
所述应用***服务器节点,还用于任务执行完毕后更新第一队列。
优选的,所述应用***服务器节点还用于初始化第一队列。
优选的,还包括:
用户接口服务器节点,用于配置数据表和任务以及设置数据表和任务的依赖关系,并加载数据表和任务到应用服务器节点中。
优选的,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
实施例四
本实施例为结合图1、图2、图3、图4给出数据表和任务的在各个队列迁移和状态变化以及血缘关系图如何更新的过程。
配置单元411配置了数据表和任务,并且配置了数据表和任务的依赖关系。配置单元将数据表和任务发送给分析单元412。分析单元根据数据表和任务的依赖关系生成图2所示的血缘关系图,分析单元在血缘关系图中识别出***输入表211,212,213放入***输出表列表(第一集合),分析单元从血缘关系图中识别出边界任务221放入等待队列(第一队列)。
调度单元413建立***输入表检查任务按照第一预设周期(为符合当前应用的若干秒),周期性的检查***输入表列表中的***输入表的数据是否全部到达,并将数据全部到达的***输入表标记为就绪状态。调度单元按照第二预设周期(为符合当前应用的若干秒)周期性检查等待队列中的各任务的***输入表是否为就绪状态,将***输入表全部为就绪状态的任务移入就绪队列(第二队列),调度任务依次将就绪队列中的任务提交到执行队列(第三队列)执行。
任务执行完毕后,执行模块向分析单元反馈任务执行完毕。分析模块分析血缘关系图,识别出此时数据表231、232、213为***输入表,任务241、242为边界任务,用***输入表231、232、213更新***输入表列表,用任务241、242更新等待队列。
调度单元扫描等待队列,开始新的任务调度循环。在有大量任务的情况下,经过有限次的循环,可以将需要执行的任务执行完毕。实现了合理地自动确定任务的执行顺序,尽可能充分地利用集群的***资源,从而不需要人工设置和修改任务执行计划,实现***对数据和任务的变化快速灵活响应,达到提升大数据集群易用性和性能提升的效果。
实施例五
下面结合Spark集群给出一个优选实施例:
用户接口服务器节点710的配置单元711配置***所需的数据表和数据处理的任务,并将数据表和任务加载到应用服务器节点720。用户服务器节点720的分析单元721根据表和任务之间输入、输出的依赖关系建立血缘关系图(步骤S501),如图2所示,所述血缘关系图为有向无环图DAG。参见图2,表节点使用方框表示,任务节点使用圆形表示。
分析单元721基于血缘关系图,识别***输入表并放入***输入表列表(第一集合),调度单元722建立***输入表列表检查任务(步骤S503)按照第一预设周期检查***输入表列表中各***输入表的数据是否已经完全到达(步骤S601),如果有***输入表的数据完全到达,表示该表就绪,将该表标记为就绪状态(步骤S602)。
判断***输入表的方法为遍历血缘图中的所有表节点,如果表节点有任务依赖而没有任务输出则该表为***输入表,也就是所述***输入表是指不需要等待任意一个任务的输出数据的表。参见图2,图中数据表211、212、213符合上述定义,被识别为***输入表。
分析单元721根据血缘关系图分析结合当前任务的状态,识别出边界任务,放入等待队列(第一队列),调度单元722按照第二预设周期检查等待队列中各任务的***输入表是否全部为就绪状态(步骤S504),如果等待队列中某任务的***输入表全部为就绪状态则称该任务就绪。如果存在准备就绪的任务,则将该任务等待队列移入就绪队列(第二队列321)(步骤S505)。
所述***输入表检查任务的运行和检查等待队列中各任务是否就绪,是两个相互有联系但并行的步骤。
边界任务的判断方法:
遍历血缘图中未完成的任务,如果任务依赖的数据不再由其他任务生成则该任务为边界任务,也就是所述边界任务是指该任务的输入表全部是***输入表的任务。参见图2,图中任务221符合上述定义,被识别为边界任务。
例如,用户清洗小时任务从全用户详细信息表清洗出某种用户统计小时表则定义用户清洗小时任务节点,定义输入表为全用户详细信息表,定义输出表为某种用户统计小时表。
用户天清洗任务从某种用户统计小时表表汇聚成某种用户统计天表则定义用户天清洗任务节点,定义输入表为某种用户统计小时表(24个),定义输出表为某种用户统计天表。
将用户小时清洗任务和用户天清洗任务组成血缘关系图。用户清洗小时任务的输入表不需要依赖其他任务输出数据,为***输入表,用户清洗小时任务依赖的数据不需要其他任务生成,为边界任务。用户天清洗任务依赖的输入表是由未完成任务输出的,所以不是边界任务。
调度单元周期性的扫描就绪队列并判断大数据集群是否有空余资源(步骤S506),逐个将任务移入到大数据集群730的集群节点731的执行单元732的执行队列(第三队列331)执行(S507)。
例如,结合Spark当前的***资源是否有剩余情况,逐个将任务提交到Spark大数据集群的worker节点执行。
优选的,将任务从就绪队列移入执行队列是按任务的优先级顺序的,任务的优先级由***输出表确定,***输出表具有优先级,生成***输出表的前序任务和前序数据表具有和该***输出表相同优先级。按照查询需求,在配置单元711对***输出表进行优先级设置。
判断***输出表的方法为遍历血缘图中的所有表节点,如果表节点没有任务依赖只有任务输出则该表为***输出表,也就是所述***输出表是指整个***没有任意一个任务的输入数据依赖该表。
所述前序任务是指血缘关系图中处于***输出表前驱顶点的任务,所述前序数据表是指血缘关系图中处于***输出表前驱顶点的表。参见图2,图中数据表251、252为***输出表。
例如,将某种用户统计天表识别为***输出表。针对该表可以设置优先级。设置为优先级100,根据血缘关系得到前序任务,即用户清洗小时任务节点和用户清洗小时任务。将这两个任务均同步设置为优先级100。通过对输出表以及其前序任务和表的优先级配置实现对***的需求变化可以灵活配置。
任务执行完毕后,执行单元732通知分析单元721任务完成,任务的输出表到达并且完整,分析单元重新识别血缘关系图中的***输入表并更新***输入表列表,分析单元重新识别血缘关系图中的边界任务并更新等待队列,从步骤S504开始重复以上步骤,如此驱动后序任务的执行。
预设条件为任务依赖的数据全部到达时,使得***能够实时对数据到达做出响应。通过建立血缘关系图、分析血缘关系图识别边界任务建立任务第一队列和通过检查任务依赖的数据全部到达实现数据驱动的任务调度,可以更加合理地自动确定任务的执行顺序,尽可能充分地利用集群的***资源,从而不需要人工设置和修改任务执行计划,实现***对数据和任务的变化快速灵活响应,达到提升大数据集群易用性和性能提升的效果。
例如,用户清洗小时任务节点任务完成后通知***某种用户统计小时表到达并且完整。***更新边界任务,将用户天清洗任务加入等待队列,开始扫描用户天清洗任务依赖的所有***输入表是否全部就绪。
优选的,判断***孤立表,方法为遍历血缘图中的所有表节点,如果表节点没有任务依赖也没有任务输出则该表为***孤立表。针对***孤立表,提示用户该表未被使用。
实施例六
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本发明的实施例还提供了一种存储介质。优选的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;
将所述第二队列中的任务提交到第三队列;
所述第三队列中的任务执行完毕后,更新所述第一队列。
优选的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
优选的,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例记载的方法步骤。
优选的,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,优选的,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种任务调度的方法,其特征在于,包括:
扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;
将所述第二队列中的任务提交到第三队列;
所述第三队列中的任务执行完毕后,更新所述第一队列。
2.如权利要求1所述方法,其特征在于,所述预设条件为第一队列中的任务依赖的数据全部到达。
3.如权利要求1所述方法,其特征在于,所述在扫描第一队列中的任务之前,还包括初始化第一队列。
4.如权利要求3所述方法,其特征在于,所述的初始化第一队列包括:
根据数据表和任务之间的输入、输出的依赖关系生成血缘关系图,所述血缘关系图为有向无环图DAG;
从血缘关系图中识别出***输入表放入到第一集合,所述***输入表是指不需要等待任意一个任务的输出数据的表;
从血缘关系图中识别出边界任务放入第一队列,所述边界任务是指输入表全部是***输入表的任务。
5.如权利要求4所述方法,其特征在于,确定所述第一队列中的任务依赖的数据全部到达包括:
按照第一预设周期检查第一集合中各***输入表的数据,将数据完全到达的***输入表标记为就绪状态,和/或;
按照第二预设周期检查第一队列中的各任务,任务所依赖的全部***输入表为就绪状态表示该任务依赖的全部数据到达。
6.如权利要求4所述的方法,其特征在于,所述的第三队列中的任务执行完毕后,更新所述第一队列包括:
重新识别血缘关系图中的***输入表并更新第一集合;
重新识别血缘关系图中的边界任务并更新第一队列。
7.如权利要求4至6任意一项权利要求所述方法,其特征在于,
将所述第二队列中的任务提交到第三队列是按照任务的优先级顺序提交,任务的优先级由***输出表的优先级确定;***输出表具有优先级,生成***输出表的前序任务和前序数据表具有和该***输出表相同优先级;
其中,所述***输出表是指整个***没有任意一个任务的输入数据依赖该表,所述前序任务是指血缘关系图中处于***输出表前驱顶点的任务,所述前序数据表是指血缘关系图中处于***输出表前驱顶点的表。
8.一种任务调度的装置,其特征在于,包括:
调度单元,用于扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;
所述调度单元还用于将所述第二队列中的任务提交到第三队列;
执行单元,用于执行第三队列中的任务;
分析单元,用于任务执行完毕后更新第一队列。
9.如权利要求8所述装置,其特征在于,还包括:
所述分析单元还用于初始化第一队列。
10.如权利要求8所述装置,其特征在于,还包括:
配置单元,用于配置数据表和任务以及设置数据表和任务的依赖关系,并加载数据表和任务到分析单元。
11.一种任务调度***,其特征在于,包括:应用服务器节点,大数据集群;
应用***服务器节点,用于扫描第一队列中的任务,将第一队列中符合预设条件的任务移入第二队列;将所述第二队列中的任务提交到第三队列;
大数据集群,用于执行第三队列中的任务;
所述应用***服务器节点,还用于任务执行完毕后更新第一队列。
12.如权利要求11所述***,其特征在于,还包括:
所述应用***服务器节点,还用于初始化第一队列。
13.如权利要求11所述***,其特征在于,还包括:
用户接口服务器节点,用于配置数据表和任务以及设置数据表和任务的依赖关系,并加载数据表和任务到应用服务器节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610682892.7A CN107766144A (zh) | 2016-08-17 | 2016-08-17 | 一种任务调度方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610682892.7A CN107766144A (zh) | 2016-08-17 | 2016-08-17 | 一种任务调度方法、装置及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107766144A true CN107766144A (zh) | 2018-03-06 |
Family
ID=61261364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610682892.7A Withdrawn CN107766144A (zh) | 2016-08-17 | 2016-08-17 | 一种任务调度方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766144A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144694A (zh) * | 2018-08-09 | 2019-01-04 | 北京城市网邻信息技术有限公司 | 信息***配置方法、装置、设备及计算机可读存储介质 |
CN109445926A (zh) * | 2018-11-09 | 2019-03-08 | 杭州玳数科技有限公司 | 数据任务调度方法及数据任务调度*** |
WO2020186836A1 (zh) * | 2019-03-15 | 2020-09-24 | 上海商汤智能科技有限公司 | 任务调度 |
CN113282957A (zh) * | 2021-06-03 | 2021-08-20 | 光大科技有限公司 | 一种数据资产的上架处理方法及装置 |
-
2016
- 2016-08-17 CN CN201610682892.7A patent/CN107766144A/zh not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144694A (zh) * | 2018-08-09 | 2019-01-04 | 北京城市网邻信息技术有限公司 | 信息***配置方法、装置、设备及计算机可读存储介质 |
CN109445926A (zh) * | 2018-11-09 | 2019-03-08 | 杭州玳数科技有限公司 | 数据任务调度方法及数据任务调度*** |
WO2020186836A1 (zh) * | 2019-03-15 | 2020-09-24 | 上海商汤智能科技有限公司 | 任务调度 |
US11347546B2 (en) | 2019-03-15 | 2022-05-31 | Shanghai Sensetime Intelligent Technology Co., Ltd | Task scheduling method and device, and computer storage medium |
CN113282957A (zh) * | 2021-06-03 | 2021-08-20 | 光大科技有限公司 | 一种数据资产的上架处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5890133A (en) | Method and apparatus for dynamic optimization of business processes managed by a computer system | |
Mukund Nilakantan et al. | Bio-inspired search algorithms to solve robotic assembly line balancing problems | |
CN107766144A (zh) | 一种任务调度方法、装置及*** | |
Ajorlou et al. | Artificial bee colony algorithm for CONWIP production control system in a multi-product multi-machine manufacturing environment | |
CN110866687A (zh) | 任务分配方法及装置 | |
CN112990515A (zh) | 一种基于启发式优化算法的车间资源调度方法 | |
CN111158800B (zh) | 基于映射关系构建任务dag的方法及装置 | |
CN113807821A (zh) | 基于离散场景同步工单的方法、***、设备及存储介质 | |
CN110619573B (zh) | 一种客户尽职调查案例分配方法及装置 | |
CN112327621A (zh) | 一种基于蚁群算法的柔性生产线自适应控制***及方法 | |
CN115829538A (zh) | 一种终端运维服务管理*** | |
Ajorlou et al. | Optimization of a multiproduct conwip-based manufacturing system using artificial bee colony approach | |
CN116862206B (zh) | 一种自适应优化生产计划的分布式制造执行的方法和*** | |
Zhang et al. | Automated workflow synthesis | |
CN114090259A (zh) | 资源调配方法、装置、电子设备和存储介质 | |
CN111984327A (zh) | 一种跨区块链指令调度的方法 | |
Mirzapour Al-e-hashem et al. | A new approach to solve a mixed-model assembly line with a bypass subline sequencing problem | |
WO2020062047A1 (zh) | 更新调度规则的方法、设备、***、存储介质和终端 | |
CN107479962A (zh) | 一种用于任务下发的方法与设备 | |
US20220229692A1 (en) | Method and device for data task scheduling, storage medium, and scheduling tool | |
Egilmez et al. | Group scheduling in a cellular manufacturing shop to minimise total tardiness and nT: a comparative genetic algorithm and mathematical modelling approach | |
Asadi-Zonouz et al. | A hybrid unconscious search algorithm for mixed-model assembly line balancing problem with SDST, parallel workstation and learning effect | |
JP2778915B2 (ja) | 生産スケジュール作成装置 | |
Branke et al. | Evolving control rules for a dual-constrained job scheduling scenario | |
Villarraga et al. | Agent-based modeling and simulation for an order-to-cash process using netlogo |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180306 |
|
WW01 | Invention patent application withdrawn after publication |