CN115185659A - 任务实例运行方法、装置以及计算机可读存储介质 - Google Patents

任务实例运行方法、装置以及计算机可读存储介质 Download PDF

Info

Publication number
CN115185659A
CN115185659A CN202210794226.8A CN202210794226A CN115185659A CN 115185659 A CN115185659 A CN 115185659A CN 202210794226 A CN202210794226 A CN 202210794226A CN 115185659 A CN115185659 A CN 115185659A
Authority
CN
China
Prior art keywords
task
running
task instances
instances
time
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
Application number
CN202210794226.8A
Other languages
English (en)
Inventor
姜迅
邱凌峰
郑惠沄
何德峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Yuncongxihe Artificial Intelligence Co ltd
Original Assignee
Jiangsu Yuncongxihe Artificial Intelligence Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangsu Yuncongxihe Artificial Intelligence Co ltd filed Critical Jiangsu Yuncongxihe Artificial Intelligence Co ltd
Priority to CN202210794226.8A priority Critical patent/CN115185659A/zh
Publication of CN115185659A publication Critical patent/CN115185659A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及计算机处理技术领域,具体提供一种任务实例运行方法、装置以及计算机可读存储介质,旨在正常调度不同周期且具有依赖关系的任务,该方法包括:获取时空有向无环图,时空有向无环图中包括多个节点和多个有向边,多个顶点指示了多个任务实例的运行状态和运行时间,每个有向边连接两个顶点,其方向指示了两个顶点对应的任务实例间的依赖关系;根据时空有向无环图,查找运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第一组任务实例;运行第一组任务实例,并根据运行结果在对应顶点处更新第一组任务实例的运行状态。本发明通过将任务拆解为任务实例,实现不同周期任务正常调度。

Description

任务实例运行方法、装置以及计算机可读存储介质
技术领域
本发明涉及计算机技术领域,具体提供一种任务实例运行方法、装置以及计算机可读存储介质。
背景技术
任务调度是数据流转过程中的重要环节。数据流转中的任务主要包括抽取、清洗、转换、导入和标准化等。任务调度中,任务具有依赖性和周期性。
依赖性即任务间具有依赖关系,存在依赖关系的两个任务分为父任务和子任务,父任务运行完毕,子任务才能运行,如:对于数据抽取和数据转换来说,抽取任务是父任务,数据转换是子任务,若数据抽取任务运行失败,则数据转换任务无法运行。
周期性即任务需要按固定时间间隔或者每日某几个时间点运行,如:每隔4小时运行一次,每日6点和18点运行一次。
现有技术只能解决同周期的依赖任务调度,无法完成跨周期的依赖任务调度。如图1所示,任务C依赖于任务A和任务B,任务A和任务C每隔9小时执行一次,任务B每隔6小时执行一次。若3个任务同时从0点启动,当日9点,任务A执行完毕,而任务B为未开始状态,导致了任务C无法执行。
产生上述问题的原因是现有技术仅考虑同周期内的依赖关系,9点时,任务B为未运行状态,导致了任务A运行成功后任务C仍有父任务未运行成功而进入等待状态,若等待时间足够长(超过了3小时),任务C的等待状态持续到了12点任务B运行完成,则任务C可以运行成功。但是不同场景下的等待时间是难以预估的,等待时间过长业务上难以接受,等待时间过短会导致任务失败。
发明内容
为了克服上述缺陷,提出了本发明,以提供解决或至少部分解决正常调度不同周期且具有依赖关系的任务的任务实例运行方法、装置以及计算机可读存储介质。
在第一方面,本发明提供一种任务实例运行方法,所述方法包括:获取时空有向无环图,所述时空有向无环图中包括多个顶点和多个有向边,所述多个顶点指示了多个任务实例的运行状态和运行时间,每个有向边连接两个顶点,其方向指示了所述两个顶点对应的任务实例间的依赖关系;根据所述时空有向无环图,查找运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第一组任务实例;运行所述第一组任务实例,并根据运行结果在对应顶点处更新所述第一组任务实例的运行状态。
优选地,前述的任务实例运行方法,在“获取时空有向无环图”的步骤之前,还包括:根据所述多个任务实例对应的任务的起止时间和运行周期,计算所述多个任务实例的版本,所述多个任务实例的版本指示所述多个任务实例的运行时间,根据所述多个任务实例的版本在所述时空有向无环图中设置所述多个顶点。
优选地,前述的任务实例运行方法,在“获取时空有向无环图”的步骤之前,还包括:根据所述多个任务实例对应的任务之间的依赖关系,计算所述多个任务实例之间的依赖关系,根据所述多个任务实例之间的依赖关系,在所述时空有向无环图中设置所述多个有向边。
优选地,前述的任务实例运行方法,“根据所述多个任务实例对应的任务之间的依赖关系,计算所述多个任务实例之间的依赖关系”的步骤包括:在第一任务依赖第二任务时,对于所述第一任务的第一任务实例,从所述第二任务对应的任务实例中筛选出运行时间小于或等于所述第一任务实例的运行时间的第二组任务实例,从所述第二组任务实例中选择运行时间最晚的第二任务实例,判定所述第一任务实例依赖所述第二任务实例。
优选地,前述的任务实例运行方法,在“根据所述多个任务实例之间的依赖关系,在所述时空有向无环图中设置所述多个有向边”的步骤之后,还包括:根据业务需求,对所述时空有向无环图中的所述多个有向边进行调整。
优选地,前述的任务实例运行方法,还包括:在处于运行失败状态的任务实例需要重新运行时,根据所述时空有向无环图,选择依赖所述处于运行失败状态的任务实例的第三组任务实例,在对应顶点处将所述第三组任务实例设置为待运行状态;从所述第三组任务实例中选择运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第四组任务实例;运行所述第四组任务实例,并根据运行结果在对应顶点处更新所述第四组任务实例的运行状态。
优选地,前述的任务实例运行方法,“根据所述时空有向无环图,查找运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第一组任务实例”的步骤包括:根据预设时间间隔,从所述时空有向无环图中查找所述第一组任务实例。
在第二方面,本发明提供一种任务实例运行装置,所述装置包括:获取模块,获取时空有向无环图,所述时空有向无环图中包括多个顶点和多个有向边,所述多个顶点指示了多个任务实例的运行状态和运行时间,每个有向边连接两个顶点,其方向指示了所述两个顶点对应的任务实例间的依赖关系;查找模块,根据所述时空有向无环图,查找运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第一组任务实例;运行模块,运行所述第一组任务实例,并根据运行结果在对应顶点处更新所述第一组任务实例的运行状态。
优选地,前述的任务实例运行装置,还包括:设置模块,在所述获取模块“获取时空有向无环图”之前,根据所述多个任务实例对应的任务的起止时间和运行周期,计算所述多个任务实例的版本,所述多个任务实例的版本指示所述多个任务实例的运行时间,根据所述多个任务实例的版本在所述时空有向无环图中设置所述多个顶点。
在第三方面,提供一种控制装置,该控制装置包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述任务实例运行方法的技术方案中任一项技术方案所述任务实例运行方法。
在第四方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述任务实例运行方法的技术方案中任一项技术方案所述的上述任务实例运行方法。
本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:
本发明的技术方案中,没有直接调度任务,而是将任务拆解为任务实例,并在时空有向无环图中,通过顶点来设置任务实例的运行时间和运行状态,通过有向边来表示任务实例之间的依赖关系,则处于不同运行时间的任务实例之间也可以建立依赖关系,在运行任务时,按照运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态三个条件,选择当前时间需要运行的一组任务实例,该组任务实例不受其他未运行任务实例制约,所以可以送入内存正常运行,由于不同运行时间的任务实例对应不同运行周期的任务,所以本发明的技术方案相当于实现了不同周期任务的正常调度。
附图说明
参照附图,本发明的公开内容将变得更易理解。本领域技术人员容易理解的是:这些附图仅仅用于说明的目的,而并非意在对本发明的保护范围组成限制。其中:
图1是任务之间依赖关系的示意图;
图2是根据本发明的一个实施例的任务实例运行方法的流程图;
图3根据本发明的一个实施例的任务实例运行方法的流程图;
图4是根据本发明的一个实施例的任务实例运行方法中的时空有向无环图。
具体实施方式
下面参照附图来描述本发明的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
在本发明的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、图像处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。术语“A和/或B”表示所有可能的A与B的组合,比如只是A、只是B或者A和B。术语“至少一个A或B”或者“A和B中的至少一个”含义与“A和/或B”类似,可以包括只是A、只是B或者A和B。单数形式的术语“一个”、“这个”也可以包含复数形式。
如图2所示,本发明的一个实施例中提供一种任务实例运行方法,方法包括:
步骤S210,获取时空有向无环图,时空有向无环图中包括多个顶点和多个有向边,多个顶点指示了多个任务实例的运行状态和运行时间,每个有向边连接两个顶点,其方向指示了两个顶点对应的任务实例间的依赖关系。
本实施例中的时空有向无环图是一种有向无环图,其是指:如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图),其通过图数据库来存储。图数据库是以点、边为基础存储单元,以高效存储、查询图数据为设计原理的数据管理系统。
本实施例中,并未对任务直接进行调度,而是将任务拆解为任务实例,通过顶点来设置任务实例的运行时间和运行状态,通过有向边表示任务实例间的依赖关系,由于任务实例来源于任务,所以不同运行时间的任务实例来源于不同运行周期的任务,在不同运行时间的任务实例间建立了依赖关系,即相当于在不同运行周期的任务间建立了依赖关系,突破了现有技术的局限。
步骤S220,根据时空有向无环图,查找运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第一组任务实例。
本实施例中,在运行任务实例时,按照三个条件:(1)运行时间小于或等于当前时间、(2)处于待运行状态、(3)不依赖其他任务实例或所依赖任务实例处于运行成功状态,选择同时满足上述三个条件的任务实例,作为当前时间需要运行的一组任务实例,该组任务实例不受其他未运行任务实例制约,可以送入内存正常运行。
进一步地,可以根据预设时间间隔,从时空有向无环图中查找第一组任务实例。
本步骤按一定时间间隔反复执行,从而将待运行任务分批次推送到内存中运行。具体地,可以根据所有任务实例对应任务的运行周期的最小值,来计算该时间间隔,从而确保任务实例及时运行,同时不会对时空有向无环图进行过多查询。
步骤S230,运行第一组任务实例,并根据运行结果在对应顶点处更新第一组任务实例的运行状态。
本实施例中,根据任务实例运行结果来更新对应顶点处的运行状态,其为运行成功状态或运行失败状态,影响被依赖的任务实例能否运行。
本实施例的技术方案中,没有直接调度任务,而是将任务拆解为任务实例,并在时空有向无环图中,通过顶点来设置任务实例的运行时间和运行状态,通过有向边来表示任务实例之间的依赖关系,则处于不同运行时间的任务实例之间也可以建立依赖关系,在运行任务时,按照运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态三个条件,选择当前时间需要运行的一组任务实例,该组任务实例不受其他未运行任务实例制约,所以可以送入内存正常运行,由于不同运行时间的任务实例对应不同运行周期的任务,所以本发明的技术方案相当于实现了不同周期任务的正常调度。
如图3所示,本发明的一个实施例中提供一种任务实例运行方法,方法包括:
步骤S310,根据多个任务实例对应的任务的起止时间和运行周期,计算多个任务实例的版本,多个任务实例的版本指示多个任务实例的运行时间,根据多个任务实例的版本在时空有向无环图中设置多个顶点。
本实施例中,首先需要确定任务内容、运行时间、运行周期和任务间的依赖关系等,完成任务预配置。具体地,可以定义任务名称、任务类型、任务内容、开始时间、结束时间和周期等,例如:任务名称为人像数据抽取,任务内容为源数据库信息和目标数据库信息(数据库IP、数据库名称、账户和密码等),开始时间为2022年1月1日0点,结束时间为2023年1月1日0点,周期为每日0点运行。每一个任务都有任务id,系统通过自增整数确保任务id的唯一性。还可以配置任务依赖关系。如图1所示,任务C依赖任务A和任务B,即任务C的父任务为任务A和任务B。
本实施例中,根据用户配置的运行时间和运行周期生成任务对应的所有数据版本,并为任务的每一个数据版本生成任务实例。此处,数据版本是指,数据更新时会为这一批数据生成一个版本号,取值为时间字符串,如:按天更新的数据版本为‘20220512000000’,按小时更新的数据版本为‘20220215030000’。任务实例是指,任务具有1个或多个数据版本,每一个数据版本中的任务即为任务实例。具体地,每日通过开始时间、结束时间和周期计算出任务所有的数据版本,如:“人像数据抽取任务”总共有31个数据版本,分别为“2022-01-0100:00:00”……“2022-01-3100:00:00”,那么该任务就会有31个任务实例,每个任务实例具有唯一的实例id,实例id的构成为“任务id_数据版本”。因此本实施例中,时空SAG中顶点属性中的版本能够反映任务实例的运行时间。
步骤S320,根据多个任务实例对应的任务之间的依赖关系,计算多个任务实例之间的依赖关系,根据多个任务实例之间的依赖关系,在时空有向无环图中设置多个有向边。
本实施例中,根据任务间的依赖关系生成任务实例间的依赖关系。
具体地,在第一任务依赖第二任务时,对于第一任务的第一任务实例,从第二任务对应的任务实例中筛选出运行时间小于或等于第一任务实例的运行时间的第二组任务实例,从第二组任务实例中选择运行时间最晚的第二任务实例,判定第一任务实例依赖第二任务实例。
本实施例中,对于存在依赖关系的两个任务实例,以被依赖任务实例为父实例,以依赖对方的实例为子实例。根据任务依赖关系和任务实例id来生成实例依赖关系,生成方法为:对于每个子任务的实例,其父实例为小于或等于子任务实例数据版本的父任务对应实例中,数据版本最大的实例,也即早于或等于子任务实例运行时间的父任务对应实例中,运行时间最晚的实例。如图1所示,任务C一天内有3个实例,9点时任务B没有实例,因此系统会对9点的任务C实例和6点的任务B实例建立依赖关系。
具体地,也可以根据业务需求,对时空有向无环图中的多个有向边进行调整。
本实施例中,支持用户根据自身业务需要,在时空DAG中增减依赖关系。
步骤S330,获取时空有向无环图,时空有向无环图中包括多个顶点和多个有向边,多个顶点指示了多个任务实例的运行状态和运行时间,每个有向边连接两个顶点,其方向指示了两个顶点对应的任务实例间的依赖关系。
本实施例中,根据任务实例以及实例间的依赖关系生成时空DAG,如图4所示,时空DAG由顶点和边组成,顶点表示任务实例,边表示实例依赖关系。其中,顶点的id为实例id,属性为任务实例运行状态(取值包括:待运行、运行中、运行成功和运行失败)、数据版本和优先级(默认为1,失败重跑时为-1);边为有向边,方向为父实例指向子实例,即被依赖的实例指向依赖对方的实例。
步骤S340,根据时空有向无环图,查找运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第一组任务实例。
本实施例中,按照固定时间间隔搜索时空DAG,找到符合上述条件的任务实例,发送到内存中运行。具体地,在首次使用时空DAG时,需要进行顶点属性初始化,即将时空DAG中所有顶点的任务实例运行状态设为“待运行”、优先级设为1。多个顶点对应任务实例之间的依赖关系,使多个顶点之间形成父子节点关系。使用图遍历算法(如:深度优先查找)找到所有运行时间小于或等于当前时间的任务实例的“根节点”(即没有父节点或者父节点的任务实例运行状态为“运行成功”的顶点),该“根节点”对应任务实例此时不受其他任务制约可以运行。然后把“根节点”的任务实例运行状态改为“运行中”,以发送到内存中运行。
具体地,每日按照固定间隔(默认为10秒)扫描时空DAG并执行上述步骤完成任务实例调度。
步骤S350,运行第一组任务实例,并根据运行结果在对应顶点处更新第一组任务实例的运行状态。
本实施例中,把上述任务实例发送到内存中运行,运行完毕后修改顶点的属性,具体包括运行完毕的任务实例的任务实例运行状态,根据结果设为“运行成功”或者“运行失败”。
步骤S360,在处于运行失败状态的任务实例需要重新运行时,根据时空有向无环图,选择依赖处于运行失败状态的任务实例的第三组任务实例,在对应顶点处将第三组任务实例设置为待运行状态。
本实施例中,若用户需要重跑运行失败的任务实例,把用户选择的任务实例以及其所有的子实例的运行状态改为“待运行”,优先级设为-1。此处,通过优先级将发生运行失败的任务实例与其他实例区分开来。
步骤S370,从第三组任务实例中选择运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第四组任务实例。
步骤S380,运行第四组任务实例,并根据运行结果在对应顶点处更新第四组任务实例的运行状态。
本实施例中,从时空DAG获取所有运行时间小于或等于当前时间、优先级状态为-1且运行状态为“待运行”的任务实例,并把这些任务实例的“根节点”(即优先级状态为-1、无父实例或者父实例的运行状态为“运行成功”的顶点)任务实例,同样地,该批“根节点”此时不受其他任务制约,可以发送给内存运行。
本实施例的技术方案,通过增加时间维度,将任务根据数据版本拆解为任务实例,并根据任务实例和依赖关系生成时空DAG以解决跨周期任务的调度问题。在上述例子中,9点时任务A的实例运行完毕,所述系统会检测到任务B实例在6点时已运行完毕,从而开始运行任务C在9点的实例。
本领域技术人员能够理解的是,本发明实现上述一实施例的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
进一步,本发明还提供了一种控制装置。在根据本发明的一个控制装置实施例中,控制装置包括处理器和存储装置,存储装置可以被配置成存储执行上述方法实施例的任务实例运行方法的程序,处理器可以被配置成用于执行存储装置中的程序,该程序包括但不限于执行上述方法实施例的任务实例运行方法的程序。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该控制装置可以是包括各种电子设备形成的控制装置设备。
进一步,本发明还提供了一种计算机可读存储介质。在根据本发明的一个计算机可读存储介质实施例中,计算机可读存储介质可以被配置成存储执行上述方法实施例的任务实例运行方法的程序,该程序可以由处理器加载并运行以实现上述任务实例运行方法。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机可读存储介质可以是包括各种电子设备形成的存储装置设备,可选的,本发明实施例中计算机可读存储介质是非暂时性的计算机可读存储介质。
进一步,应该理解的是,由于各个模块的设定仅仅是为了说明本发明的装置的功能单元,这些模块对应的物理器件可以是处理器本身,或者处理器中软件的一部分,硬件的一部分,或者软件和硬件结合的一部分。因此,图中的各个模块的数量仅仅是示意性的。
本领域技术人员能够理解的是,可以对装置中的各个模块进行适应性地拆分或合并。对具体模块的这种拆分或合并并不会导致技术方案偏离本发明的原理,因此,拆分或合并之后的技术方案都将落入本发明的保护范围内。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

Claims (10)

1.一种任务实例运行方法,其特征在于,所述方法包括:
获取时空有向无环图,所述时空有向无环图中包括多个顶点和多个有向边,所述多个顶点指示了多个任务实例的运行状态和运行时间,每个有向边连接两个顶点,其方向指示了所述两个顶点对应的任务实例间的依赖关系;
根据所述时空有向无环图,查找运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第一组任务实例;
运行所述第一组任务实例,并根据运行结果在对应顶点处更新所述第一组任务实例的运行状态。
2.根据权利要求1所述的任务实例运行方法,其特征在于,在“获取时空有向无环图”的步骤之前,还包括:
根据所述多个任务实例对应的任务的起止时间和运行周期,计算所述多个任务实例的版本,所述多个任务实例的版本指示所述多个任务实例的运行时间,根据所述多个任务实例的版本在所述时空有向无环图中设置所述多个顶点。
3.根据权利要求1所述的任务实例运行方法,其特征在于,在“获取时空有向无环图”的步骤之前,还包括:
根据所述多个任务实例对应的任务之间的依赖关系,计算所述多个任务实例之间的依赖关系,根据所述多个任务实例之间的依赖关系,在所述时空有向无环图中设置所述多个有向边。
4.根据权利要求3所述的任务实例运行方法,其特征在于,“根据所述多个任务实例对应的任务之间的依赖关系,计算所述多个任务实例之间的依赖关系”的步骤包括:
在第一任务依赖第二任务时,对于所述第一任务的第一任务实例,从所述第二任务对应的任务实例中筛选出运行时间小于或等于所述第一任务实例的运行时间的第二组任务实例,从所述第二组任务实例中选择运行时间最晚的第二任务实例,判定所述第一任务实例依赖所述第二任务实例。
5.根据权利要求3所述的任务实例运行方法,其特征在于,在“根据所述多个任务实例之间的依赖关系,在所述时空有向无环图中设置所述多个有向边”的步骤之后,还包括:
根据业务需求,对所述时空有向无环图中的所述多个有向边进行调整。
6.根据权利要求1所述的任务实例运行方法,其特征在于,还包括:
在处于运行失败状态的任务实例需要重新运行时,根据所述时空有向无环图,选择依赖所述处于运行失败状态的任务实例的第三组任务实例,在对应顶点处将所述第三组任务实例设置为待运行状态;
从所述第三组任务实例中选择运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第四组任务实例;
运行所述第四组任务实例,并根据运行结果在对应顶点处更新所述第四组任务实例的运行状态。
7.根据权利要求1所述的任务实例运行方法,其特征在于,“根据所述时空有向无环图,查找运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第一组任务实例”的步骤包括:
根据预设时间间隔,从所述时空有向无环图中查找所述第一组任务实例。
8.一种任务实例运行装置,其特征在于,所述装置包括:
获取模块,获取时空有向无环图,所述时空有向无环图中包括多个顶点和多个有向边,所述多个顶点指示了多个任务实例的运行状态和运行时间,每个有向边连接两个顶点,其方向指示了所述两个顶点对应的任务实例间的依赖关系;
查找模块,根据所述时空有向无环图,查找运行时间小于或等于当前时间、处于待运行状态、不依赖其他任务实例或所依赖任务实例处于运行成功状态的第一组任务实例;
运行模块,运行所述第一组任务实例,并根据运行结果在对应顶点处更新所述第一组任务实例的运行状态。
9.一种控制装置,包括处理器和存储装置,所述存储装置适于存储多条程序代码,其特征在于,所述程序代码适于由所述处理器加载并运行以执行权利要求1至6中任一项所述的任务实例运行方法。
10.一种计算机可读存储介质,其中存储有多条程序代码,其特征在于,所述程序代码适于由处理器加载并运行以执行权利要求1至6中任一项所述的任务实例运行方法。
CN202210794226.8A 2022-07-05 2022-07-05 任务实例运行方法、装置以及计算机可读存储介质 Pending CN115185659A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210794226.8A CN115185659A (zh) 2022-07-05 2022-07-05 任务实例运行方法、装置以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210794226.8A CN115185659A (zh) 2022-07-05 2022-07-05 任务实例运行方法、装置以及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN115185659A true CN115185659A (zh) 2022-10-14

Family

ID=83517594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210794226.8A Pending CN115185659A (zh) 2022-07-05 2022-07-05 任务实例运行方法、装置以及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115185659A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658749A (zh) * 2022-10-25 2023-01-31 工银瑞信基金管理有限公司 基于有向无环图的基金产品排序方法、装置和电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658749A (zh) * 2022-10-25 2023-01-31 工银瑞信基金管理有限公司 基于有向无环图的基金产品排序方法、装置和电子设备

Similar Documents

Publication Publication Date Title
CA2866449C (en) Telemetry system for a cloud synchronization system
EP3425535A1 (en) Dynamically performing data processing in a data pipeline system
US7590668B2 (en) Pausable backups of file system items
CN108280023B (zh) 任务执行方法、装置和服务器
CN106201552A (zh) 一种软件升级方法、客户端、服务器及系统
CN107066296B (zh) 一种集群节点中镜像的清理方法及装置
EP2240851A1 (en) Methods and systems for generating availability management framework (amf) configurations
CN107483241B (zh) 一种在网元升级过程中下载升级镜像版本的方法和装置
US8381218B2 (en) Managing groups of computing entities
CN112463450B (zh) 一种增量备份管理方法、系统、电子设备及存储介质
CN109460358B (zh) 基于Cmdb的配置管理方法及系统
CN111369350A (zh) 冲正交易处理方法及装置
CN115185659A (zh) 任务实例运行方法、装置以及计算机可读存储介质
JP6148769B2 (ja) 複数のイベントクラスタを生成するために画像セットを分割するための方法、システムおよび装置
CN107203437B (zh) 防止内存数据丢失的方法、装置和系统
CN110895485A (zh) 任务调度系统
CN115495527A (zh) 一种数据同步管理系统和方法
JP4537808B2 (ja) データ収集装置、データ収集システム及びデータ収集方法
US10409651B2 (en) Incremental workflow execution
CN111796845B (zh) 数据库升级方法、状态数据查询方法、设备和存储介质
CN111400243B (zh) 基于流水线服务的研发管理系统以及文件存储方法、装置
CN110659042A (zh) 一种服务器固件管理方法与装置
US9588861B2 (en) Method and apparatus for automatically identifying components to monitor in an enterprise environment
CN112631620B (zh) 一种制作操作系统的方法、系统、设备及介质
CN112650573B (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