CN112613840A - 一种作业调度控制方法、装置、设备和存储介质 - Google Patents
一种作业调度控制方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112613840A CN112613840A CN202011562791.9A CN202011562791A CN112613840A CN 112613840 A CN112613840 A CN 112613840A CN 202011562791 A CN202011562791 A CN 202011562791A CN 112613840 A CN112613840 A CN 112613840A
- Authority
- CN
- China
- Prior art keywords
- job
- task
- executed
- determining
- tasks
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种作业调度控制方法、装置、设备和存储介质,该方法包括:响应于任务执行指令,获取预设的工作流任务状态表,其中,该任务状态表包括至少一个任务的作业状态信息;根据任务执行指令和任务状态表确定待执行任务的作业状态;根据待执行任务的作业状态确定作业调度顺序;控制待执行任务按照作业调度顺序执行待执行任务。本发明通过待执行任务的作业状态信息确定作业调度顺序,作业调度顺序可以由任务执行指令和预设的工作流任务状态表确定,进而得到待执行任务的作业调度,本发明由作业状态信息得到作业调度,根据作业调度顺序执行待执行任务,可以减少和缩短任务的作业时长,提高作业效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种作业调度控制方法、装置、设备和存储介质。
背景技术
随着科技的发展,数据处理给人们的生活和工作提供了更多的便利,许多公司都在构建自己的大数据平台,其中作业调度系统充当了作业配置、管理和调度的核心角色。作业调度系统为计算任务提供自动化调度管理,在自动化办公领域,许多工作流系统的业务需要调用任务调度平台来实现大规模的计算任务,在作业调度系统中,工作流是最小的调度单元。
但是现有的作业调度类产品所支持的流程逻辑方法是基于作业流的简单串行和并行关系,现有的调度方法不能支持并行限流,从而导致目标运行环境的崩溃;而如果通过人为控制并行限流,则当目标运行环境发生变化时,又无法做到系统资源压力的自适应。因此,现有的作业调度方法无法处理复杂的并行调度问题,调度效率较低。
发明内容
为了解决上述问题,本发明提供了一种作业调度控制方法、装置、设备和存储介质,目的在于提供一种作业调度控制方法及装置,解决的目前现有的作业调度方法调度效率较低的技术问题。
本发明一方面提供一种作业调度控制方法,所述方法包括:
响应于任务执行指令,获取预设的工作流任务状态表,其中,所述任务状态表包括至少一个任务的作业状态信息;
根据所述任务执行指令和所述任务状态表确定待执行任务的作业状态;
基于所述待执行任务的作业状态确定作业调度顺序;
控制所述待执行任务按照所述作业调度顺序执行所述待执行任务。
在一实施例中,所述根据所述任务执行指令和所述任务状态表确定待执行任务的作业状态包括:
根据所述任务执行指令确定待执行任务;
检测所述待执行任务是否存在于所述任务状态表中;
当存在时,基于所述任务状态表确定所述待执行任务的作业状态。
在一实施例中,所述根据所述任务执行指令和所述任务状态表确定所述待执行任务的作业状态包括:
基于所述任务执行指令和所述任务状态表确定所述待执行任务的作业流程,其中,所述作业流程包括每个作业间的依赖关系;
根据所述每个作业间的依赖关系确定所述待执行任务的作业状态。
在一实施例中,所述基于所述待执行任务的作业状态确定作业调度顺序包括:
获取所述作业流程中的每个作业的作业时长;
根据所述每个作业的作业时长和所述每个作业间的依赖关系确定所述每个作业的执行顺序;
将所述每个作业的执行顺序作为所述作业调度顺序。
在一实施例中,所述根据所述每个作业的作业时长和所述每个作业间的依赖关系确定所述每个作业的执行顺序包括:
基于所述每个作业间的依赖关系,针对所述作业流程中的每个作业,确定所述每个作业的等待时长和作业时长;
根据所述每个作业的等待时长和作业时长,得到所述每个作业的执行顺序。
在一实施例中,所述根据所述每个作业的作业时长和所述每个作业间的依赖关系确定所述每个作业的执行顺序包括:
基于所述每个作业间的依赖关系和所述每个作业的作业时长,得到所述作业流程的总时长;
基于所述总时长修正所述每个作业的等待时长;
根据修正后的等待时长,确定所述每个作业的执行顺序。
在一实施例中,在所述控制所述待执行任务按照所述作业调度顺序执行所述待执行任务之前,所述方法还包括:
对所述待执行任务进行预处理操作,其中,所述预处理操作为宏转换。
另一方面,本发明提供了一种作业调度控制装置,所述装置包括:
获取模块,用于响应于任务执行指令,获取预设的工作流任务状态表,其中,所述任务状态表包括至少一个任务的作业状态信息;
作业状态确定模块,用于根据所述任务执行指令和所述任务状态表确定待执行任务的作业状态;
作业调度顺序确定模块,用于基于所述待执行任务的作业状态确定作业调度顺序;
控制模块,用于控制所述待执行任务按照所述作业调度顺序执行所述待执行任务。
在一实施例中,所述作业状态确定模块,具体用于:根据所述任务执行指令确定
待执行任务;
检测所述待执行任务是否存在于所述任务状态表中;
当存在时,基于所述任务状态表确定所述待执行任务的作业状态。
在一实施例中,所述作业状态确定模块,具体用于:基于所述任务执行指令和所述任务状态表确定所述待执行任务的作业流程,其中,所述作业流程包括每个作业间的依赖关系;
根据所述每个作业间的依赖关系确定所述待执行任务的作业状态。
在一实施例中,所述作业调度顺序确定模块,具体用于:获取所述作业流程中的每个作业的作业时长;
根据所述每个作业的作业时长和所述每个作业间的依赖关系确定所述每个作业的执行顺序;
将所述每个作业的执行顺序作为所述作业调度顺序。
在一实施例中,所述作业调度顺序确定模块,具体用于;
基于所述每个作业间的依赖关系,针对所述作业流程中的每个作业,确定所述每个作业的等待时长和作业时长;
根据所述每个作业的等待时长和作业时长,得到所述每个作业的执行顺序。
在一实施例中,所述作业调度顺序确定模块,具体用于:基于所述每个作业间的依赖关系和所述每个作业的作业时长,得到所述作业流程的总时长;
基于所述总时长修正所述每个作业的等待时长;
基于所述每个作业修正后的等待时长,确定所述每个作业的执行顺序。
在一实施例中,所述装置还包括:预处理模块,用于对所述待执行任务进行预处理操作,其中,所述预处理操作为宏转换。
又一方面,本发明还提供一种电子设备,所述设备包括:
处理器;
存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的作业调度控制方法。
再一方面,本发明还提供了一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的作业调度控制方法。
本发明的有益效果在于,提供了一种作业调度控制方法、装置、设备和存储介质,该方法包括:响应于任务执行指令,获取预设的工作流任务状态表,其中,该任务状态表包括至少一个任务的作业状态信息;根据任务执行指令和任务状态表确定待执行任务的作业状态;根据待执行任务的作业状态确定作业调度顺序;控制待执行任务按照作业调度顺序执行待执行任务。本发明通过待执行任务的作业状态信息确定作业调度顺序,作业调度顺序可以由任务执行指令和预设的工作流任务状态表确定,进而得到待执行任务的作业调度,本发明由作业状态信息得到作业调度,根据作业调度顺序执行待执行任务,可以减少和缩短任务的作业时长,提高作业效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例作业调度控制方法的流程示意图;
图2为本发明实施例作业调度控制装置的结构示意图;
图3为本发明实施例另一作业调度控制方法的流程示意图;
图4为本发明实施例又一作业调度控制方法的流程示意图;
图5为本发明实施例处理审核任务时的主流程示意图;
图6为本发明实施例处理审核任务时的子流程示意图;
图7为本发明实施例应用的作业调度方法的流程示意图;
图8为本发明实施例电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的方法可以应用于通用型作业调度产品中,包括但不限定于网上银行、手机银行系统及电子商务等场景。使用基于工作流标准的调度产品,可以适应包括OLTP(on-line transaction processing,联机事务处理)和OLAP(On-Line AnalyticalProcessing,联机分析处理)在内的各种业务应用场景,进而可以作为企业的统一调度平台对所有系统进行调度。区别于现有的作业调度产品中的作业调度方法,本发明提出了一种作业调度控制方法,以下对本发明的方案进行详细描述。
图1为本发明实施例作业调度控制方法的流程示意图。如图1所示,该方法主要包括以下步骤:
步骤101,响应于任务执行指令,获取预设的工作流任务状态表,其中,任务状态表包括至少一个任务的作业状态信息;
步骤102,根据任务执行指令和任务状态表确定待执行任务的作业状态;
步骤103,基于待执行任务的作业状态确定作业调度顺序;
步骤104,控制待执行任务按照作业调度顺序执行待执行任务。
在一实施例中,根据任务执行指令和任务状态表确定待执行任务的作业状态包括:
根据任务执行指令确定待执行任务;
检测待执行任务是否存在于任务状态表中;
当存在时,基于任务状态表确定待执行任务的作业状态。
在一实施例中,根据任务执行指令和任务状态表确定待执行任务的作业状态包括:
基于任务执行指令和任务状态表确定待执行任务的作业流程,其中,作业流程包括每个作业间的依赖关系;
根据每个作业间的依赖关系确定待执行任务的作业状态。
在一实施例中,基于待执行任务的作业状态确定作业调度顺序包括:
获取作业流程中的每个作业的作业时长;
根据每个作业的作业时长和每个作业间的依赖关系确定每个作业的执行顺序;
将每个作业的执行顺序作为作业调度顺序。
在一实施例中,根据每个作业的作业时长和每个作业间的依赖关系确定每个作业的执行顺序包括:
基于每个作业间的依赖关系,针对作业流程中的每个作业,确定每个作业的等待时长和作业时长;
根据每个作业的等待时长和作业时长,得到每个作业的执行顺序。
在一实施例中,根据每个作业的作业时长和每个作业间的依赖关系确定每个作业的执行顺序包括:
基于每个作业间的依赖关系和每个作业的作业时长,得到作业流程的总时长;
基于总时长修正所述每个作业的等待时长;
根据每个作业修正后的等待时长,确定每个作业的执行顺序。
在一实施例中,在控制待执行任务按照作业调度顺序执行待执行任务之前,该方法还包括:
对待执行任务进行预处理操作,其中,预处理操作为宏转换。
本发明提供的一种作业调度控制方法,响应于任务执行指令,获取预设的工作流任务状态表,其中,任务状态表包括至少一个任务的作业状态信息;根据任务执行指令和任务状态表确定待执行任务的作业状态;基于待执行任务的作业状态确定作业调度顺序;控制待执行任务按照作业调度顺序执行待执行任务。本发明由作业状态信息得到作业调度,根据作业调度顺序执行待执行任务,可以减少和缩短任务的作业时长,提高作业效率。
基于与图1所示的作业调度控制方法相同的发明构思,本发明实施例还提供了一种作业调度控制装置,如下面实施例所述。由于该装置解决问题的原理与图1中作业调度控制方法相似,因此该装置的实施可以参见图1的作业调度控制方法的实施,重复之处不再赘述。
其结构如图2所示,该装置200包括:获取模块21、作业状态确定模块22、作业调度顺序确定模块23、控制模块24;其中,
获取模块21,用于响应于任务执行指令,获取预设的工作流任务状态表,其中,任务状态表包括至少一个任务的作业状态信息;
作业状态确定模块22,用于根据任务执行指令和任务状态表确定待执行任务的作业状态;
作业调度顺序确定模块23,用于基于待执行任务的作业状态确定作业调度顺序;
控制模块24,用于控制待执行任务按照作业调度顺序执行待执行任务。
在一实施例中,作业状态确定模块22,具体可以用于:根据任务执行指令确定待执行任务;
检测待执行任务是否存在于任务状态表中;
当存在时,基于任务状态表确定待执行任务的作业状态。
在一实施例中,作业状态确定模块22,具体可以用于:基于任务执行指令和任务状态表确定待执行任务的作业流程,其中,作业流程包括每个作业间的依赖关系;
根据每个作业间的依赖关系确定待执行任务的作业状态。
在一实施例中,作业调度顺序确定模块23,具体用于:获取作业流程中的每个作业的作业时长;
根据每个作业的作业时长和每个作业间的依赖关系确定每个作业的执行顺序;
将每个作业的执行顺序作为作业调度顺序。
在一实施例中,作业调度顺序确定模块23,具体用于:获取作业流程中的每个作业的作业时长;
根据每个作业的作业时长和每个作业间的依赖关系确定每个作业的执行顺序;
将每个作业的执行顺序作为作业调度顺序。
在一实施例中,作业调度顺序确定模块23,具体用于;
基于每个作业间的依赖关系,针对作业流程中的每个作业,确定每个作业的等待时长和作业时长;
根据每个作业的等待时长和作业时长,得到每个作业的执行顺序。
在一实施例中,作业调度顺序确定模块23,具体可以用于:基于每个作业间的依赖关系和每个作业的作业时长,得到作业流程的总时长;
基于总时长修正每个作业的等待时长;
基于每个作业修正后的等待时长,确定每个作业的执行顺序。
在一实施例中,该作业调度控制装置200还包括:预处理模块,用于对待执行任务进行预处理操作,其中,预处理操作可以为宏转换。
下面通过一具体实施例对本发明提供的作业调度控制方法及装置进行详细说明。
步骤1:获取模块21响应于任务执行指令,获取预设的工作流任务状态表,其中,任务状态表包括至少一个任务的作业状态信息;
获取模块21接收到任务执行指令时,该任务执行指令可以作为本发明提供的作业调度方法运行的触发条件,响应于该任务执行指令,获取预设的工作流任务状态表,任务执行指令中可以包括待执行任务的任务名称,该待执行任务中可以包括至少一个作业,该工作流任务状态表包括至少一个任务的作业状态信息,每个任务可以包括多个作业,也可以包括多个子流程,每个子流程中还可以包括多个作业,作业状态信息中包括有该待执行任务的历史执行数据,可以由历史执行数据得知每个作业的历史平均执行时长、任务执行的总时长或者每个作业等待执行的时长等相关信息。以工作流标准来实现作业流调度,可以使作业流程的设计更好地适应复杂的应用业务逻辑,工作流中嵌套、循环、分支、空作业等概念的运用,也可以使业务流程的表达更加直观和灵活。以工作流包括作业1、作业2和作业3为例,该作业1、作业2和作业3各自对应的作业状态信息均存储于工作流任务状态表中,每个作业的作业状态信息可以为作业的具体内容、作业序号、作业时长等。
获取模块21响应于任务执行指令,可以采用消息传递机制将任务执行指令传递给作业状态确定模块22,本发明的作业调度控制装置200中的各个模块之间可以通过消息的唤醒和触发机制实现消息的传递和作业调度,可以使任务的持续时间得到大幅度缩减,提高作为负载的消息传递的时效性。
步骤2:作业状态确定模块22根据任务执行指令和任务状态表确定待执行任务的作业状态;
作业状态确定模块22根据任务执行指令和预设的工作流任务状态表确定待执行任务的作业状态;
在一实施例中,根据该任务执行指令中对应的任务和预设的工作流任务状态表确定待执行任务的作业状态,参照图3,具体可以包括如下步骤:
步骤201,根据任务执行指令确定待执行任务;
步骤202,检测待执行任务是否存在于任务状态表中;
步骤203,当存在时,基于任务状态表确定待执行任务的作业状态。
根据任务执行指令确定待执行任务,在预设的工作流任务状态表中检测该待执行任务是否存在,即是否为预设的系统任务,当确定是预设的系统任务时,从任务状态表中确定待执行任务的作业状态。
在一具体实施例中,当判断待执行任务存在于预设的工作流任务状态表中后,根据任务执行指令和任务状态表确定待执行任务的作业状态还可以包括:基于任务执行指令和任务状态表确定待执行任务的作业流程,其中,作业流程包括每个作业间的依赖关系;根据每个作业间的依赖关系确定待执行任务的作业状态。预设的工作流任务状态表中还可以包括各个任务的作业流程,该作业流程中还可以包括每个作业间的依赖关系,如上所述,以工作流包括作业1、作业2和作业3为例,例如,作业1执行完后才能执行作业2,作业2执行完才能执行作业3,该作业1、作业2和作业3依次形成依赖关系,因此,可以根据每个作业间的依赖关系确定每个作业之间的执行关系,进而得到待执行任务的作业状态。每个作业间的依赖关系是指作业间的逻辑执行顺序,即当一个任务下有多个作业时,那么作业之间的执行顺序是预设设置好的,作业2和作业3是不会优于作业1执行的,只有等作业1执行完毕,才能够执行作业2和作业3。而且,需要说明的是,待执行任务的作业流程可以包括子流程,而子流程中可以包括多个作业。
步骤3:作业调度顺序确定模块23基于待执行任务的作业状态确定作业调度顺序;
根据步骤2中确定的待执行任务的作业状态可以确定各个作业的调度顺序,具体可以包括如下步骤,参考图4:
步骤301,获取作业流程中的每个作业的作业时长;
步骤302,根据每个作业的作业时长和每个作业间的依赖关系确定每个作业的执行顺序;
步骤303,将每个作业的执行顺序作为作业调度顺序。
得到待执行任务的作业流程后,获取该作业流程中每个作业的作业时长,即完成当前作业的所需时长,可以根据每个作业的作业时长和各个作业之间的依赖关系确定每个作业的执行顺序,得到作业调度顺序。例如,如上所述的作业1、作业2和作业3依次形成依赖关系,作业1执行完后能同时执行作业2和作业3,作业1的作业时长为1min,作业2的作业时长为2min,作业3的作业时长为1min,那么在作业1执行完毕后,由于作业2的作业时长比作业3的作业时长长,因此,作业3可以在作业2执行完1min后才开始执行,也可以在作业1执行完毕后立即执行,由此可以得到该任务的执行顺序为,作业1—作业2—作业3;或者作业1—作业2和作业3同时执行。需要说明的是,此处仅以一简单的示例进行说明,如何依据每个作业的作业时长和各个作业之间的依赖关系确定每个作业的执行顺序,但本发明的实施例不限于此。
在一具体实施例中,根据每个作业的作业时长和各个作业之间的依赖关系确定每个作业的执行顺序,可以包括如下步骤:
基于每个作业间的依赖关系,针对作业流程中的每个作业,确定每个作业的等待时长和作业时长;
根据每个作业的等待时长和作业时长,得到每个作业的执行顺序。
由前述的作业流程可以得到每个作业间的依赖关系,针对作业流程中的每个作业,确定在作业流程上每个作业的等待时间和作业时长,等待时长为当前作业需要等待前面作业完成的等待时间,作业时长为当前作业的作业时长,即执行当前作业所需要的时间,根据每个作业的等待时间和作业时长可以确定每个作业的执行顺序。如上所述的作业1、作业2和作业3依次形成依赖关系,作业1执行完后能同时执行作业2和作业3,作业1的作业时长为1min,作业2的作业时长为2min,作业3的作业时长为1min,因此,对于作业2和作业3来说,作业2和作业3的等待时长为1min。也就是说,作业2和作业3需要等待1min后才可以执行。在作业1执行完毕后,由于作业2的执行时间比作业3的作业时长长,因此,作业3可以在作业2执行完1min后才开始执行,此时作业3的等待时长可以为2min,也可以在作业1执行完毕后立即执行,此时作业3的等待时长为1min,由此可以得到该任务的执行顺序为,作业1—作业2—作业3;或者作业1—作业2和作业3同时执行。需要说明的是,此处仅以一简单的示例进行说明,各个作业之间的依赖关系可以不限于如上所述的依赖关系,本发明的实施例不限于此。
在一具体实施例中,基于每个作业间的依赖关系和每个作业的作业时长,得到作业流程的总时长;基于总时长修正每个作业的等待时长;根据每个作业修正后的等待时长,确定每个作业的执行顺序。
在本实施例中,根据每个作业间的依赖关系和每个作业的作业时长,可以计算出作业流程的总时长,例如,如上所述的作业1、作业2和作业3依次形成依赖关系,作业1执行完后能同时执行作业2和作业3,作业1的作业时长为1min,作业2的作业时长为2min,作业3的作业时长为1min,作业流程的总时长为作业1的作业时长加作业2的作业时长,为3min,因为作业3的等待时长可以为0,也可以为1min,可以根据总时长将作业3的等待时长修正为作业1的作业时长为1min加上作业3的最大等待时长1min,为2min。而作业2的等待时长修正为作业1的作业时长为1min加上0,为1min,作业1的等待时长为0,需要立即执行。需要说明的是,此处仅以一简单的示例进行说明,各个作业之间的依赖关系可以不限于如上所述的依赖关系,本发明的实施例不限于此。
在一具体实施例中,基于总时长修正每个作业的等待时长可以包括:根据如上所述的每个作业间的依赖关系,得到作业流程中最后一个作业的最大等待时长,例如在上述例子中的作业1、作业2和作业3的依赖关系中,在作业3之后添加作业4,作业4要在作业3执行后完成,并且与作业2无关系。作业4的作业时长为2min,此时作业流程的总时长为5min,作业4的等待时长修正为总时长减去作业4的作业时长,为3min。
在一具体实施例中,作业调度顺序的计算方法是首先设置作业流程中包括的主流程的第一个作业和包括的所有子流程的第一个作业,计算主流程的第一个作业和子流程的第一个作业的等待时长和作业时长,并且计算本次设置的作业数目,如果不为0,意味着可能本次设置的作业下还可能存在着下一个作业,当然这个可以由预先设置的依赖关系得到,循环计算设置的作业数目,当为0时,意味着当前作业流程中的作业都已经设置完毕,可以继续设置作业流程中的子流程的等待时长和作业时长,当不为0时,意味着可能还存在着其他子流程;当为0时,意味着当前作业流程中的子流程为0,继续计算作业流程中最后一个作业的等待时长,往前倒退计算后置已经设置完成的作业的等待时长,计算本次设置的作业数,当不为0时,说明还存在未设置完成的作业,当为0时,说明本次作业流程中的作业都已经设置完成,需要根据总的工作时长修正每个作业的等待时长,包括主流程和所有子流程中的作业,当所有的作业修正完毕时,得到每个作业修正后的等待时长,进一步得到作业调度顺序。
本发明提供的作业调度算法,基于每个作业修正后的等待时长,可以使任务的总执行时间达到最短,在任务间存在依赖关系时,该方法能够可以使得后续作业尽早得到执行,进而有效提升总体的调度效率。
下面将以一具体实施例说明上述的确定每个作业的执行顺序,如图5和图6所示,图5和图6中示例出的是在实际应用中,针对一采购任务所应用的本发明的作业调度控制方法的流程示意图。
结合图5和图6,图中示出针对采购申请任务的各个作业内容,括号内为当前作业的作业时长,如图5所示,针对采购申请任务这个主流程,可以包括总裁办审批这个子流程,主流程中包括作业A行政部采购申请、作业B财务部财务审批、作业C商务部商务审批以及子流程D总裁办审批,以下简称作业A,作业B、作业C和子流程D。作业A的作业时长为5min,作业A的下一个作业B的作业时长为4min,作业C作业时长为3min,而作业B和作业C都执行完毕后,进入到子流程D,而子流程D还包括作业E和作业F,如图6所示。采用本发明提供的调度方法如下:
步骤S1,首先设置作业流程中主流程和所有子流程的等待时长和作业时长,设置作业A的等待时长=0min,因为作业A前面不存在其他作业,作业A的作业时长=5min;子流程D的第一个作业E的等待时长=0min,E的作业时长=2min;
步骤S2,计算步骤S1中设置作业的个数,当不为0时,继续设置上述已经设置完成的作业的下一个作业的等待时长和作业时长,这里可以由预先设置的各个作业间的依赖关系的得到,,进入S3;如果为0,即每个作业都设置完毕,那么进入步骤S7;
步骤S3,因为需要等作业A执行完毕,设置作业B的等待时长=5min,B作业时长=4min;作业C的等待时长=5min,作业C作业时长=3min;作业F等待时长=2min,作业F作业时长=1min;
步骤S4,计算步骤S3中设置作业的个数等于3,不为0,继续设置上述已经设置完成的作业的下一个作业的等待时长和作业时长,这里可以由预先设置的各个作业间的依赖关系的得到,进入S5;
步骤S5,因为D是子流程,不可计算;而作业E和作业F已经设置完毕;
步骤S6,计算步骤S5中设置作业的个数等于0,进入S7;
步骤S7,设置子流程D等待时长=5min+MAX(4min,3min)=9min,子流程D作业时长=3min;
步骤S8,计算S7中的设置子流程数不为0时,继续设置子流程等待时长和作业时长,进入S9;
步骤S9,已无其他子流程;
步骤S10,计算步骤S9中的子流程数=0,进入S11;
步骤S11,根据总时长设置作业流程中最后一个作业的等待时长,主流程的总作业时长=12min,子流程D等待时长修正为(12-D作业时长)=9min;子流程D的总作业时长=3min,作业F等待时长修正为(3-F作业时长)=2min;
步骤S12,设置后置已完成作业的等待时长,作业B等待时长修正为(9-B作业时长)=5min;作业C等待时长修正为(9-C作业时长)=6min;作业E等待时长修正为(2-E作业时长)=0min;
步骤S13,计算设置后置已完成作业的修正时长的作业数,步骤S12中的修正的作业数=3,继续设置后置已完成作业的等待时长,进入S14;
步骤S14,作业A的后置设置已完成,作业A等待时长修正为(5-A作业时长)=0min;
步骤S15,计算步骤S14作业数=1,不为0,继续设置后置已完成作业的等待时长,进入S16;
步骤S16,都已计算完毕;
步骤S17,步骤S16中的作业数=0,进入步骤S18;
步骤S18,作业A修正后的等待时长不变,进入步骤S19;
步骤S19,修正子流程D的等待时长,即:作业E等待时长=作业E等待时长+作业D等待时长=0+9=9min;作业F等待时长=作业F等待时长+子流程D等待时长=2+9=11min;
步骤S20,计算步骤S19中修正的子流程数=1,不为0,进入S21;为0时,结束流程。
步骤S21,无子流程;
步骤S22,S21子流程数=0,结束;
至此计算得出:作业A等待时长=0min,作业B等待时长=5min,作业C等待时长=6min,作业E等待时长=9min,作业F等待时长=11min,业务的执行顺序为A、B、C、E、F。根据该执行顺序可以控制各个作业进行调度。在本计算流程中,修正后的各个作业的时长也可以被看作是各个执行权重,等待时长越长的被执行的权重越小,代表可以开始执行的时间越晚。根据得到的结果逐步倒推,就可以得到每个作业的最晚开始时间,而最晚开始时间可以决定限流情况下的作业优先顺序。
在一实施例中,该作业调度控制装置200还包括预处理模块,预处理模块对待执行任务进行预处理操作,其中,预处理操作可以为宏转换,宏转换可用于对任务进行拆包,得到各个作业。
本发明提供的作业调度控制装置,通过响应于任务执行指令,获取预设的工作流任务状态表,其中,该任务状态表包括至少一个任务的作业状态信息;根据任务执行指令和任务状态表确定待执行任务的作业状态;根据待执行任务的作业状态确定作业调度顺序;控制待执行任务按照作业调度顺序执行待执行任务。本发明通过待执行任务的作业状态信息确定作业调度顺序,作业调度顺序可以由预设的工作流任务状态表确定,进而得到待执行任务的作业调度,本发明由任务执行指令和作业状态信息得到作业调度,根据作业调度顺序执行待执行任务,可以减少和缩短任务的作业时长,提高作业效率。
图7示出了本发明的应用于调度平台产品的任务处理流程,执行流程如下:
步骤10.接收任务执行指令,作为本次业务调度的触发条件,并结合预设的工作流任务状态表,判断任务是否存在,存在时,进入步骤11;
步骤11.开始处理任务,在本步骤中应用如上所述的计算业务调度顺序的方法;
步骤12.进行调度处理,按照步骤11中得到的业务调度顺序进行处理,可以使用宏转换等处理方法,将任务进行拆包;
步骤13.进行作业调度预处理,包括检测当前系统环境是否满足任务执行条件,代理是否连接,是否可利用等;
步骤14.控制任务按照业务调度顺序进行处理;
步骤15.对执行结果进行判断,包括三种情况:1)、任务未处理完成时,回到步骤12.调度处理之前的步骤;2)任务处理完成时,任务结束处理,进入步骤16;3)作业完成时生成作业完成标识,生成该标识的作用是为了通知其他业务节点,某作业已完成,进入步骤17;
步骤16.确定任务处理结束,进入步骤18;
步骤17.进行作业调度后的处理,进入步骤19;
步骤18.任务处理结束,进行环境清理,保证系统资源处于可利用状态;
步骤19.作业调度完成后,可以对作业进行记录等附加处理。
图8是根据本发明实施例提供的用于作业调度控制方法的计算机设备的示意图。如图8所示,该设备可以包括处理器801以及存储有计算机程序指令的存储器802。
具体地,上述处理器801可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器802可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器802可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器802可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器802可在综合网关容灾设备的内部或外部。在特定实施例中,存储器802是非易失性固态存储器。在特定实施例中,存储器802包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器801通过读取并执行存储器802中存储的计算机程序指令,以实现上述实施例中的用于作业调度控制方法。
在一个示例中,上述的计算机设备还可包括通信接口803和总线804。其中,如图8所示,处理器801、存储器802、通信接口803通过总线804连接并完成相互间的通信。
通信接口803,主要用于实现本发明实施例中各模块、设备、单元和/或设备之间的通信。
总线804包括硬件、软件或两者,用于将上述部件彼此耦接在一起。举例来说,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线X10可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
该计算机设备可以执行本发明实施例中的用于作业调度控制方法,从而实现结合图1和图2描述的用于作业调度控制方法及装置。
此外,参照图1所描述的用于作业调度控制方法可通过记录在计算机可读存储介质上的程序(或指令)来实现。例如,根据本发明的示例性实施例,可提供存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行用于作业调度控制方法。
上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,应注意,计算机程序还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经在参照图1进行相关方法的描述过程中提及,因此这里为了避免重复将不再进行赘述。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种作业调度控制方法,其特征在于,所述方法包括:
响应于任务执行指令,获取预设的工作流任务状态表,其中,所述任务状态表包括至少一个任务的作业状态信息;
根据所述任务执行指令和所述任务状态表确定待执行任务的作业状态;
基于所述待执行任务的作业状态确定作业调度顺序;
控制所述待执行任务按照所述作业调度顺序执行所述待执行任务。
2.根据权利要求1所述的方法,其特征在于,所述根据所述任务执行指令和所述任务状态表确定待执行任务的作业状态包括:
根据所述任务执行指令确定待执行任务;
检测所述待执行任务是否存在于所述任务状态表中;
当存在时,基于所述任务状态表确定所述待执行任务的作业状态。
3.根据权利要求1所述的方法,其特征在于,所述根据所述任务执行指令和所述任务状态表确定所述待执行任务的作业状态包括:
基于所述任务执行指令和所述任务状态表确定所述待执行任务的作业流程,其中,所述作业流程包括每个作业间的依赖关系;
根据所述每个作业间的依赖关系确定所述待执行任务的作业状态。
4.根据权利要求3所述的方法,其特征在于,所述基于所述待执行任务的作业状态确定作业调度顺序包括:
获取所述作业流程中的每个作业的作业时长;
根据所述每个作业的作业时长和所述每个作业间的依赖关系确定所述每个作业的执行顺序;
将所述每个作业的执行顺序作为所述作业调度顺序。
5.根据权利要求4所述的方法,其特征在于,所述根据所述每个作业的作业时长和所述每个作业间的依赖关系确定所述每个作业的执行顺序包括:
基于所述每个作业间的依赖关系,针对所述作业流程中的每个作业,确定所述每个作业的等待时长和作业时长;
根据所述每个作业的等待时长和作业时长,得到所述每个作业的执行顺序。
6.根据权利要求4所述的方法,其特征在于,所述根据所述每个作业的作业时长和所述每个作业间的依赖关系确定所述每个作业的执行顺序包括:
基于所述每个作业间的依赖关系和所述每个作业的作业时长,得到所述作业流程的总时长;
基于所述总时长修正所述每个作业的等待时长;
根据所述每个作业修正后的等待时长,确定所述每个作业的执行顺序。
7.根据权利要求1所述的方法,其特征在于,在所述控制所述待执行任务按照所述作业调度顺序执行所述待执行任务之前,所述方法还包括:
对所述待执行任务进行预处理操作,其中,所述预处理操作为宏转换。
8.一种作业调度控制装置,其特征在于,所述装置包括:
获取模块,用于响应于任务执行指令,获取预设的工作流任务状态表,其中,所述任务状态表包括至少一个任务的作业状态信息;
作业状态确定模块,用于根据所述任务执行指令和所述任务状态表确定待执行任务的作业状态;
作业调度顺序确定模块,用于基于所述待执行任务的作业状态确定作业调度顺序;
控制模块,用于控制所述待执行任务按照所述作业调度顺序执行所述待执行任务。
9.一种电子设备,其特征在于,所述设备包括:
处理器;
存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1-7中的任意一项所述的作业调度控制方法。
10.一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1-7中的任意一项所述的作业调度控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011562791.9A CN112613840B (zh) | 2020-12-25 | 2020-12-25 | 一种作业调度控制方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011562791.9A CN112613840B (zh) | 2020-12-25 | 2020-12-25 | 一种作业调度控制方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112613840A true CN112613840A (zh) | 2021-04-06 |
CN112613840B CN112613840B (zh) | 2022-02-15 |
Family
ID=75247835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011562791.9A Active CN112613840B (zh) | 2020-12-25 | 2020-12-25 | 一种作业调度控制方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112613840B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110329A (zh) * | 2021-04-14 | 2021-07-13 | 深圳赛动生物自动化有限公司 | 基于干细胞制备的并行操作控制方法、装置、系统及介质 |
CN113626171A (zh) * | 2021-08-26 | 2021-11-09 | 北京京东乾石科技有限公司 | 分析仓储执行设备的任务执行效率的方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590592A (zh) * | 2017-08-31 | 2018-01-16 | 中国建设银行股份有限公司 | 作业依赖关系表示方法、作业展示和调度控制方法及装置 |
CN109615138A (zh) * | 2018-12-13 | 2019-04-12 | 中国银行股份有限公司 | 一种作业流程调优方法及装置 |
CN109800081A (zh) * | 2018-12-14 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 一种大数据任务的管理方法及相关设备 |
CN110766341A (zh) * | 2019-10-31 | 2020-02-07 | 北京东软望海科技有限公司 | 优化作业调度的控制方法、装置、计算机设备及存储介质 |
CN110895484A (zh) * | 2018-09-12 | 2020-03-20 | 北京奇虎科技有限公司 | 任务调度方法及装置 |
-
2020
- 2020-12-25 CN CN202011562791.9A patent/CN112613840B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590592A (zh) * | 2017-08-31 | 2018-01-16 | 中国建设银行股份有限公司 | 作业依赖关系表示方法、作业展示和调度控制方法及装置 |
CN110895484A (zh) * | 2018-09-12 | 2020-03-20 | 北京奇虎科技有限公司 | 任务调度方法及装置 |
CN109615138A (zh) * | 2018-12-13 | 2019-04-12 | 中国银行股份有限公司 | 一种作业流程调优方法及装置 |
CN109800081A (zh) * | 2018-12-14 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 一种大数据任务的管理方法及相关设备 |
CN110766341A (zh) * | 2019-10-31 | 2020-02-07 | 北京东软望海科技有限公司 | 优化作业调度的控制方法、装置、计算机设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110329A (zh) * | 2021-04-14 | 2021-07-13 | 深圳赛动生物自动化有限公司 | 基于干细胞制备的并行操作控制方法、装置、系统及介质 |
CN113110329B (zh) * | 2021-04-14 | 2023-01-10 | 深圳赛动智造科技有限公司 | 基于干细胞制备的并行操作控制方法、装置、系统及介质 |
CN113626171A (zh) * | 2021-08-26 | 2021-11-09 | 北京京东乾石科技有限公司 | 分析仓储执行设备的任务执行效率的方法、装置及系统 |
CN113626171B (zh) * | 2021-08-26 | 2024-04-05 | 北京京东乾石科技有限公司 | 分析仓储执行设备的任务执行效率的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112613840B (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112613840B (zh) | 一种作业调度控制方法、装置、设备和存储介质 | |
CN109684057B (zh) | 任务处理方法、装置和存储介质 | |
US20090112663A1 (en) | Method and apparatus for business process transformation wizard | |
CN112132548A (zh) | 审批流转方法、装置、电子设备和存储介质 | |
CN106790039B (zh) | Kvm系统的任务流程控制方法和系统 | |
CN103645944A (zh) | 一种批量数据冲突检测方法、装置及系统 | |
CN116225703A (zh) | 集群处理方法、装置、设备及计算机可读存储介质 | |
CN114090259A (zh) | 资源调配方法、装置、电子设备和存储介质 | |
CN112416451B (zh) | 一种基于JIRA系统的issue状态自动转换方法、装置和介质 | |
CN113220459A (zh) | 一种任务处理方法及装置 | |
CN112948081A (zh) | 延时处理任务的方法、装置、设备以及存储介质 | |
CN110532810B (zh) | 信息处理方法、装置、电子设备及可读存储介质 | |
CN103577299A (zh) | 监控方法和装置、数据处理方法和装置及分布式计算系统 | |
CN113965563B (zh) | 基于模型的业务处理方法及装置、服务器 | |
CN113590308A (zh) | 一种申请云资源的工作流处理方法、装置、设备及介质 | |
CN113449891A (zh) | 基于区块链的网点排队办理方法及装置 | |
CN110018906B (zh) | 调度方法、服务器及调度系统 | |
CN113342512A (zh) | 一种io任务静默与驱动方法、装置及相关设备 | |
CN110618778A (zh) | 业务数据自动生成方法、系统、电子设备及计算机存储介质 | |
CN112183982A (zh) | 一种工作流程创建方法、装置、计算机设备及存储介质 | |
CN110928672A (zh) | 一种任务编排方法、装置、设备及存储介质 | |
CN111045711A (zh) | 一种基于usbcan的mcu软件程序升级方法及系统 | |
CN113407844B (zh) | 小程序框架的版本推荐方法、装置、设备以及存储介质 | |
CN115834714B (zh) | 一种跨平台任务调度方法、服务器和系统 | |
CN117931180A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |