CN114138442A - 异步任务调度执行方法、系统及服务器 - Google Patents

异步任务调度执行方法、系统及服务器 Download PDF

Info

Publication number
CN114138442A
CN114138442A CN202111464926.2A CN202111464926A CN114138442A CN 114138442 A CN114138442 A CN 114138442A CN 202111464926 A CN202111464926 A CN 202111464926A CN 114138442 A CN114138442 A CN 114138442A
Authority
CN
China
Prior art keywords
task
layer
tasks
target
execution
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
CN202111464926.2A
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.)
Juhaokan Technology Co Ltd
Original Assignee
Juhaokan Technology 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 Juhaokan Technology Co Ltd filed Critical Juhaokan Technology Co Ltd
Priority to CN202111464926.2A priority Critical patent/CN114138442A/zh
Publication of CN114138442A publication Critical patent/CN114138442A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及计算机技术领域,尤其涉及一种异步任务调度执行方法、系统及服务器。本申请的异步任务调度执行方法包括:构建三层任务模型,其中包括将任务按目标对象分类的目标任务列表;获取顶层任务并将其导入三层任务模型中加载,生成按目标对象分类的若干二层任务,并将若干二层任务和相应的目标对象存入目标任务列表;将每个二层任务解析为若干三层任务并存储到存储器中;按目标任务列表并行执行所有目标对象的二层任务,直至所有二层任务下的三层任务执行完毕;全部执行完毕后更新顶层任务的状态为执行完毕。本申请对任务进行分层拆解与衔接以及原子化拆分,使任务开发和执行更具灵活性,提高了代码间的复用率,提升任务开发效率。

Description

异步任务调度执行方法、系统及服务器
技术领域
本申请涉及计算机技术领域,尤其涉及一种异步任务调度执行方法、系统及服务器。
背景技术
在计算机平台中,一个具体的功能操作往往对应着一个任务,操作者可以向计算机处理器中发送任务以完成相应的功能。如增删改查等基本功能,这些功能都以任务的概念定义它们。如删除一个资源池、修改虚拟机名称等,都称作一个任务。这些任务,有的是立刻响应的,如删除操作,修改名称的操作,这些任务叫做即时任务。但也有些任务,不能立刻完成,而是需要一定的时间且时间不确定。这些任务没有即时的返回结果,只能通过任务的方式查看其进行到多少了,这种任务叫做异步任务。
大型软件系统中都会遇到异步任务调度的需求,此时往往会搭建一套独立的异步任务调度系统用于处理异步任务。业界通用的开源任务调度系统有Quartz和XXLjob,但是这些任务调度系统通常是对独立的任务进行异步调度,这些任务调度系统都没有考虑任务的模型和任务间的依赖,主要研究点在于任务调度系统,不涉及任务的步骤拆分与依赖,因此很难对复杂的大型任务进行管理。
在工作流领域,业界常用的有业务流程管理框架Activity和基于规则的规则引擎Drools,Activity主要针对流程管理,可视化图形界面进行自主编排流程,用流程图的方式把任务串接,主要针对简单的流程审批等方面,对大型复杂后台任务的支持上明显不足;Drool是一套规则引擎,按照编写好的规则进行编排执行,规则的编写基于事先实现的java类,不利于任务间的依赖操作。
因此,业界目前没有一款从任务模型制定到任务拆分解析的调度编排系统,以弥补在处理大型复杂任务时效率较低以及灵活性缺乏的不足。
发明内容
本发明提供了一种异步任务调度执行方法、系统及服务器,用以提高异步任务处理的工作效率、增加灵活性。
本申请的实施例是这样实现的:
本申请实施例的第一方面提供一种异步任务调度执行方法,包括以下步骤:构建三层任务模型,所述三层任务模型中包括将任务按目标对象分类的目标任务列表;获取顶层任务,将所述顶层任务导入所述三层任务模型中加载,生成按目标对象分类的若干二层任务,并将所述若干二层任务和相应的目标对象存入所述目标任务列表;将每个二层任务解析为若干三层任务并存储到存储器中;按所述目标任务列表并行执行所有目标对象的二层任务,直至所有二层任务下的三层任务执行完毕;全部执行完毕后更新所述顶层任务的状态为执行完毕。
结合本申请的第一方面,在一种可实现方式中,按所述目标任务列表并行执行所有目标对象的二层任务的步骤中,还包括:执行同一目标对象对应的二层任务时,检查是否存在与被执行二层任务依赖的待执行二层任务;如果存在,则在执行完所述被执行二层任务后,执行所述与被执行二层任务依赖的待执行二层任务,并根据依赖关系执行所有同一目标对象对应的二层任务;如果不存在,则并行执行所述同一目标对象对应的二层任务。
结合本申请的第一方面,在一种可实现方式中,按所述目标任务列表并行执行所有目标对象的二层任务的步骤中,还包括:并行执行不同目标对象对应的二层任务时,检查是否在不同目标对象对应的二层任务中存在相同的二层任务;如果存在,则针对不同目标对象同时执行所述相同的二层任务;如果不存在,则各自独立并行执行所述不同目标对象对应的二层任务。
结合本申请的第一方面,在一种可实现方式中,在构建三层任务模型的步骤中,还包括:根据所述目标任务列表中不同目标对象对应相同二层任务的情况,建立相同二层任务与不同目标对象的映射关系,生成跨目标依赖子列表。
结合本申请的第一方面,在一种可实现方式中,在全部执行完毕后更新顶层任务的状态为执行完毕步骤之后,还包括:根据所述顶层任务、所述二层任务以及所述三层任务的执行状态,生成执行日志并存入存储器。
结合本申请的第一方面,在一种可实现方式中,所述方法在执行过程中遇故障中断时,返回错误码报告执行失败,并将执行失败的状态信息存入存储器,在所述故障解除后,提示是否沿断点继续执行或返回初始状态重新执行。
本申请实施例的第二方面提供一种异步任务调度执行系统,包括:建模器,用于构建三层任务模型,所述三层任务模型中包括将任务按目标对象分类的目标任务列表;存储器,用于存储所述三层任务模型、任务的状态信息以及执行日志;调度器,被配置为:获取顶层任务,将所述顶层任务导入所述三层任务模型中加载,生成按目标对象分类的若干二层任务,并将所述若干二层任务和相应的目标对象存入所述目标任务列表;将每个二层任务发送至解析器解析为若干三层任务并存储到存储器中;调度执行器按所述目标任务列表并行执行所有目标对象的二层任务,直至所有二层任务下的三层任务执行完毕;全部执行完毕后更新所述顶层任务的状态为执行完毕。
结合本申请的第二方面,在一种可实现方式中,所述系统中调度器被进一步配置为:执行同一目标对象对应的二层任务时,检查是否存在与被执行二层任务依赖的待执行二层任务;如果存在,则在执行完所述被执行二层任务后,执行所述与被执行二层任务依赖的待执行二层任务,并根据依赖关系执行所有同一目标对象对应的二层任务;如果不存在,则并行执行所述同一目标对象对应的二层任务。
结合本申请的第二方面,在一种可实现方式中,所述系统中调度器被进一步配置为:并行执行不同目标对象对应的二层任务时,检查是否在不同目标对象对应的二层任务中存在相同的二层任务;如果存在,则针对不同目标对象同时执行所述相同的二层任务;如果不存在,则各自独立并行执行所述不同目标对象对应的二层任务。
本申请实施例的又一方面提供一种服务器,包括:包括处理器、存储器,以及一个或多个程序,所述一个或多个程序被存储在存储器中,并且被配置由所述处理器执行,所述存储器上存储目标任务列表,所述程序包括用于执行上述方法中所涉及的步骤的指令。
本申请的有益效果:由以上技术方案可知,本申请通过提出一种三层任务模型,并基于此模型构建异步任务调度执行方法及系统,在针对目标任务尤其是大型复杂任务时,具有更加灵活性的编排调度优势,在模型中对任务进行分层拆解与衔接时,进行原子化拆分,并充分考虑了任务间的依赖与传参关系,从而实现大型复杂任务的原子化执行,使原本独立的异步任务进行不同维度的编排,使任务开发和执行更具灵活性,提高了代码间的复用率,提升任务开发效率。目前业界还没有一款从任务模型制定到任务拆分解析的调度编排系统,本申请弥补了此短板。本申请可使复杂任务做到可编排管理,从而更为灵活、高效地实现复杂异步任务的处理。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请第一方面一实施例的三层任务示意图;
图2示出了本申请第一方面一实施例的三层任务模型示意图;
图3示出了根据一些实施例的流程框图;
图4示出了根据一些实施例的目标任务列表示意图;
图5示出了根据一些实施例的调度过程示意图;
图6示出了根据另一些实施例的调度过程示意图;
图7示出了根据又一些实施例的调度过程示意图;
图8示出了本申请又一方面一实施例的结构示意图;
图9示出了本申请又一方面一实施例的结构示意图。
具体实施方式
为使本申请示例性实施例的目的、技术方案和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请中示出的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整技术方案。
此外,术语″包括″和″具有″以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本说明书通篇提及的″多个实施例″、″一些实施例″、″一个实施例″或″实施例″等,意味着结合该实施例描述的具体特征、结构或特性包括在至少一个实施例中。因此,本说明书通篇出现的短语″在多个实施例中″、″在一些实施例中″、″在至少另一个实施例中″或″在实施例中″等并不一定都指相同的实施例。此外,在一个或多个实施例中,具体特征、结构或特性可以任何合适的方式进行组合。因此,在无限制的情形下,结合一个实施例示出或描述的具体特征、结构或特性可全部或部分地与一个或多个其他实施例的特征、结构或特性进行组合。这种修改和变型旨在包括在本申请的范围之内。
大型软件系统中通常会遇到异步任务调度的需求,此时往往会搭建一套独立的异步任务调度系统用于处理异步任务。业界通用的开源任务调度系统有Quartz和XXLjob,但是这些任务调度系统通常是对独立的任务进行异步调度,不会涉及任务的步骤拆分与依赖,因此很难对复杂的大型任务进行管理。本申请构思了一种三层任务模型,并使用此模型开展异步任务的编排与调度,可对复杂的大型任务进行原子化拆分,并考虑了任务间的依赖联系,实现大型任务的原子化执行,使原本独立的异步任务进行不同维度的编排,使任务开发和执行更具灵活性,提高代码间的复用以及提升开发效率。本申请可用于所有大型复杂任务调度系统中,实现大型任务的灵活、高效率编排调度。
图1示例性示出了本申请第一方面一实施例的三层任务模型示意图,如图1所示,本申请的三层任务模型将目标任务分为三层,最上层为顶层任务,也就是所要实施的总任务,是任务编排时最大的任务,在三层任务模型中,顶层任务会根据不同需求拆分为多个二层任务,在一些实施例中,顶层任务在三层任务模型中根据任务所针对的目标对象进行分类,如图2所示,示例性地,一个顶层任务,按任务针对的目标对象A、B、C...等进行分类后,每个目标对象对应若干二层任务,如目标对象A对应的二层任务为A1、A2、A3...等,进一步的,每个二层任务均由若干三层任务即原子任务组成,如二层任务A1由原子任务A11、A12、A13...等组成。从调度和执行逻辑上看,二层任务是任务编排时最小的调度单位,即二层任务为可调度任务的最小单位,而三层任务为原子任务,三层任务是最小的执行单位,执行器每次执行的是三层任务。为了实现任务尤其是大型复杂任务的高效编排执行,可通过在二层任务间设置依赖关系,并根据依赖关系进行调度执行,有利于提升执行效率,提高代码间的复用以及提升开发效率。
图3示出了本申请第一方面一实施例的流程示意图,参考该附图,便于理解本申请第一方面提供的一种异步任务调度执行方法的实施例。该方法包括以下步骤构建三层任务模型,其中,三层任务模型中包括将任务按目标对象分类的目标任务列表;如图4所示,目标任务列表中,以目标对象对针对该目标对象的二层任务进行分类。获取顶层任务,将顶层任务导入上述三层任务模型中加载,生成按目标对象分类的若干二层任务,并将若干二层任务和相应的目标对象存入目标任务列表;将每个二层任务解析为若干三层任务并存储到存储器中;按目标任务列表并行执行所有目标对象的二层任务,直至所有二层任务下的三层任务执行完毕;全部执行完毕后更新顶层任务的状态为执行完毕。
在一些实施例中,构建三层任务模型后,将模型以计算机语言形式存入存储器,以便后续使用时提取模型,上述存储器可为本地计算机或服务器所包含的存储器,也可采用云存储,即使用云端服务器上的存储器进行模型存储,在后续调用时通过网络连接云端服务器进行提取,实现云端备份保存。
在一些实施例中,如图5所示,可由建模器实施构建三层任务模型,并将三层任务模型存入存储器中;调度器从存储器中提取三层任务模型,并将获得的顶层任务导入模型中进行加载,生成按目标对象分类的若干二层任务,并将若干二层任务和相应的目标对象存入目标任务列表;再将所有二层任务发送至解析器解析为若干三层任务并存储到存储器中;执行器按目标任务列表并行执行所有目标对象的二层任务,直至所有二层任务下的三层任务执行完毕,全部执行完毕后更新顶层任务的状态为执行完毕。在一些实施例中,执行器执行完毕后生成执行日志,并将执行日志存入存储器,便于后续检查和读取,通过查看执行日志,了解任务执行状态,有利于对任务的执行过程进一步校正。
本实施例通过构建三层任务模型,在面对目标任务尤其是大型复杂任务时,将目标任务导入模型,进行分层拆解,将一个总的任务分解为若干二层任务,二层任务继续拆分为原子任务,由于充分考虑任务间的依赖与传参关系,使原本独立的异步任务进行不同维度的编排,使任务开发和执行更具灵活性,提高了代码间的复用率,提升任务开发效率。
本实施例中,异步任务是指任务执行的时间存在先后,或者随着任务的执行、任务的状态存在不同的任务。为便于对不同状态的异步任务进行管理,通常对异步任务的状态信息进行管理。这些异步任务的状态信息用于描述每一轮异步任务的执行状态或结果。每一轮异步任务执行完成后,异步任务的执行状态信息也随之发生改变。实施例中所述的原子任务,是一种不可分割的任务,是最小的执行任务单元。
图6示出了根据一些实施例的调度过程示意图,如图所示,在按目标任务列表并行执行所有目标对象的二层任务的步骤中,还包括:执行同一目标对象对应的二层任务时,检查是否存在与被执行二层任务依赖的待执行二层任务;如果存在,则在执行完被执行二层任务后,执行与被执行二层任务依赖的待执行二层任务,并根据依赖关系执行所有同一目标对象对应的二层任务;如果不存在,则并行执行同一目标对象对应的二层任务。
在本申请中,针对同一目标对象不同的二层任务间包含部分相同的原子任务,成为存在依赖关系,在执行二层任务时,可同时利用这部分相同的原子任务执行不同的二层任务,而不必重复执行相同的动作,这样就节约了执行时间,缩短执行流程。本实施例中根据是否存在依赖关系,调整执行的顺序逻辑,使原本各自独立的异步任务在存在依赖关系的条件下顺序承接执行,从而避免了重复执行同一动作或原子任务的繁琐,节约执行时间,提高代码间的复用率,提升任务执行效率。
图7示出了根据另一些实施例的调度过程示意图,如图所示,在按目标任务列表并行执行所有目标对象的二层任务的步骤中,还包括:并行执行不同目标对象对应的二层任务时,检查是否在不同目标对象对应的二层任务中存在相同的二层任务;如果存在,则针对不同目标对象同时执行相同的二层任务;如果不存在,则各自独立并行执行所述不同目标对象对应的二层任务。
在针对不同的目标对象进行执行时,也会遇到执行相同二层任务的情形,为了进一步提高代码的复用,在不同的目标对象执行相同的二层任务时,执行器同时针对不同目标对象执行该相同二层任务下的全部三层任务。
在一些实施例中,在顺序执行二层任务,直至被执行二层任务下的所有三层任务执行完毕之后,执行器通知调度器,调度器到存储器中更新被执行二层任务的任务状态以及执行日志,由执行中更新为执行完毕。
在一些实施例中,在所述检查是否存在与被执行二层任务依赖的待执行二层任务步骤之后,还包括:如果不存在,则按照所述三层任务模型顺序执行所述待执行二层任务。
在一些实施例中,在所述全部执行完毕后更新所述目标任务的状态为执行完毕步骤之后,还包括:将所述目标任务的状态存入所述存储器。
在一些实施例中,在所述全部执行完毕后更新所述目标任务的状态为执行完毕步骤之后,还包括:将所述目标任务、所述子目标任务以及所述二层任务的任务执行状态生成状态日志并存入所述存储器。
在一些实施例中,所述方法在执行过程中遇故障中断时,返回错误码报告执行失败,并将执行失败的状态信息存入存储器,在所述故障解除后,提示是否沿断点继续执行或返回初始状态重新执行。
本实施例中,考虑到执行过程中可能会遇到各种故障造成中断的情况,通过返回错误码报告执行失败,在故障解除后,提示是否沿断点继续执行或返回初始状态重新执行,这一操作在提高执行安全与可靠性方面具有重要意义,同时也有利于执行的高效进行。
由以上技术方案可知,本申请第一方面提供的异步任务调度执行方法,包括:构建三层任务模型,所述三层任务模型中包括将任务按目标对象分类的目标任务列表;获取顶层任务,将所述顶层任务导入所述三层任务模型中加载,生成按目标对象分类的若干二层任务,并将所述若干二层任务和相应的目标对象存入所述目标任务列表;将每个二层任务解析为若干三层任务并存储到存储器中;按所述目标任务列表并行执行所有目标对象的二层任务,直至所有二层任务下的三层任务执行完毕;全部执行完毕后更新所述顶层任务的状态为执行完毕。由于在模型中对任务进行分层拆解与衔接时,进行原子化拆分,并充分考虑了任务间的依赖与传参关系,从而实现大型复杂任务的原子化执行,使原本独立的异步任务进行不同维度的编排,使任务开发和执行更具灵活性,提高了代码间的复用率,提升任务开发效率。
与前述方法的实施例相对应,参考图8,便于理解本申请的第二方面,还提供了一种异步任务调度执行系统的实施例,该系统包括:建模器,用于构建三层任务模型,将三层任务模型中包括将任务按目标对象分类的目标任务列表;存储器,用于存储所述三层任务模型、任务的状态信息以及执行日志;调度器用于获取顶层任务,将所述顶层任务导入所述三层任务模型中加载,生成按目标对象分类的若干二层任务,并将所述若干二层任务和相应的目标对象存入所述目标任务列表;将每个二层任务发送至解析器解析为若干三层任务并存储到存储器中;调度执行器按所述目标任务列表并行执行所有目标对象的二层任务,直至所有二层任务下的三层任务执行完毕;全部执行完毕后更新所述顶层任务的状态为执行完毕。
在一些实施例中,调度器被进一步配置为:执行同一目标对象对应的二层任务时,检查是否存在与被执行二层任务依赖的待执行二层任务;如果存在,则在执行完所述被执行二层任务后,执行所述与被执行二层任务依赖的待执行二层任务,并根据依赖关系执行所有同一目标对象对应的二层任务;如果不存在,则并行执行所述同一目标对象对应的二层任务。
本实施例中通过检查任务间的依赖关系,执行具有依赖关系的任务,可在一定程度上提高代码的复用率,缩短代码运行时间,从整体上提高了任务的执行效率,增加了任务执行的灵活性。
在一些实施例中,调度器还被配置为:并行执行不同目标对象对应的二层任务时,检查是否在不同目标对象对应的二层任务中存在相同的二层任务;如果存在,则针对不同目标对象同时执行所述相同的二层任务;如果不存在,则各自独立并行执行所述不同目标对象对应的二层任务。
在一些实施例中,除了构建按目标分类的目标任务列表,还可以根据相同二层任务与不同目标对象之间的映射关系,生成跨目标依赖子列表。在一些实施例中,也可将跨目标依赖子列表存入存储器中。在并行执行不同目标对象对应的二层任务时,检查是否在不同目标对象对应的二层任务中存在相同的二层任务;调用跨目标依赖子列表,可使这一检查过程更加便捷,提升执行效率。
基于关系型数据库,可将目标任务列表以及跨目标依赖子列表均存入关系型数据库,并存入存储器中保存。
在一些实施例中,为了满足回看、检查等需要,将执行过程及其状态写入执行日志并存储,当然,执行日志可以包括更多的执行信息,如包含执行成功时的返回值,执行失败时的错误信息等,执行日志可用于定位排查执行问题。
在一些实施例中,所述系统的运行可基于本地服务器,当然,还可基于云服务器。
本实施例中,系统的运行基于本地服务器,由于可切断与外界的网络连接,有利于增加系统运行的安全性和可靠性,后期本地服务器的运行维护以及产品更新,反过来也更有利于本系统的长期安全可靠运行。
另外,本实施例中涉及的云服务器(Elastic Compute Service,ECS),是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效,用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。云服务器可快速构建更稳定、安全的应用,降低开发运维的难度和整体IT成本。通过与云服务器的网络连接,使得多台终端设备实现同时操作目标任务的调度与执行,任务编排执行更加灵活与便利。
参考图9,本申请的又一方面,提供一种服务器,包括:处理器、存储器,以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置由处理器执行,为了提升执行的效率,在存储器上存储有目标任务列表,目标任务列表包含按目标对象分类的若干二层任务信息,以及相应的目标对象信息。程序包括用于执行上述所涉及方法中的步骤的指令。
基于上述服务器,本申请的一些实施例中,可将上述调度执行的过程通过计算机语言进行编译,将编译后的软件或计算机程序代码存入所述服务器的存储介质中,即可实现本申请的发明目的。
由以上技术方案可知,本申请服务器基于三层任务模型构建异步任务调度执行,在针对目标任务尤其是大型复杂任务时,具有更加灵活性的编排调度优势,在模型中对任务进行分层拆解与衔接时,进行原子化拆分,并充分考虑了任务间的依赖与传参关系,从而实现大型复杂任务的原子化执行,使原本独立的异步任务进行不同维度的编排,使任务开发和执行更具灵活性,提高了代码间的复用率,提升任务开发效率。本申请可使复杂任务做到可编排管理,从而更为灵活地实现复杂异步任务的处理。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为″数据块″、″控制器″、″引擎″、″单元″、″组件″或″系统″。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN)、或连接至外部计算机(例如通过因特网)、或在云计算环境中、或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。

Claims (10)

1.一种异步任务调度执行方法,其特征在于,包括以下步骤:
构建三层任务模型,所述三层任务模型中包括将任务按目标对象分类的目标任务列表;
获取顶层任务,将所述顶层任务导入所述三层任务模型中加载,生成按目标对象分类的若干二层任务,并将所述若干二层任务和相应的目标对象存入所述目标任务列表;
将每个二层任务解析为若干三层任务并存储到存储器中;
按所述目标任务列表并行执行所有目标对象的二层任务,直至所有二层任务下的三层任务执行完毕;
全部执行完毕后更新所述顶层任务的状态为执行完毕。
2.根据权利要求1所述的异步任务调度执行方法,其特征在于,所述三层任务模型中,所述二层任务为可调度任务的最小单位,所述三层任务为原子任务。
3.根据权利要求1或2所述的异步任务调度执行方法,其特征在于,所述按所述目标任务列表并行执行所有目标对象的二层任务的步骤中,还包括:
执行同一目标对象对应的二层任务时,检查是否存在与被执行二层任务依赖的待执行二层任务;
如果存在,则在执行完所述被执行二层任务后,执行所述与被执行二层任务依赖的待执行二层任务,并根据依赖关系执行所有同一目标对象对应的二层任务;
如果不存在,则并行执行所述同一目标对象对应的二层任务。
4.根据权利要求1所述的异步任务调度执行方法,其特征在于,所述按所述目标任务列表并行执行所有目标对象的二层任务的步骤中,还包括:
并行执行不同目标对象对应的二层任务时,检查是否在不同目标对象对应的二层任务中存在相同的二层任务;
如果存在,则针对不同目标对象同时执行所述相同的二层任务;
如果不存在,则各自独立并行执行所述不同目标对象对应的二层任务。
5.根据权利要求1所述的异步任务调度执行方法,其特征在于,所述构建三层任务模型,所述三层任务模型中包括将任务按目标对象分类的目标任务列表的步骤中,还包括:
根据所述目标任务列表中不同目标对象对应相同二层任务的情况,建立相同二层任务与不同目标对象的映射关系,生成跨目标依赖子列表。
6.根据权利要求1所述的异步任务调度执行方法,其特征在于,所述目标任务列表存入存储器中的关系型数据库中。
7.根据权利要求1所述的异步任务调度执行方法,其特征在于,在所述全部执行完毕后更新所述顶层任务的状态为执行完毕步骤之后,还包括:
根据所述顶层任务、所述二层任务以及所述三层任务的执行状态,生成执行日志并存入所述存储器。
8.根据权利要求1所述的异步任务调度执行方法,其特征在于,所述方法在执行过程中遇故障中断时,返回错误码报告执行失败,并将执行失败的状态信息存入存储器,在所述故障解除后,提示是否沿断点继续执行或返回初始状态重新执行。
9.一种异步任务调度执行系统,其特征在于,包括:
建模器,用于构建三层任务模型,所述三层任务模型中包括将任务按目标对象分类的目标任务列表;
存储器,用于存储所述三层任务模型、任务的状态信息以及执行日志;
调度器,被配置为:
获取顶层任务,将所述顶层任务导入所述三层任务模型中加载,生成按目标对象分类的若干二层任务,并将所述若干二层任务和相应的目标对象存入所述目标任务列表;
将每个二层任务发送至解析器解析为若干三层任务并存储到存储器中;
调度执行器按所述目标任务列表并行执行所有目标对象的二层任务,直至所有二层任务下的三层任务执行完毕;
全部执行完毕后更新所述顶层任务的状态为执行完毕。
10.一种服务器,其特征在于,包括处理器、存储器,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述存储器上存储目标任务列表,所述程序包括用于执行如权利要求1-8任一项所述的方法中的步骤的指令。
CN202111464926.2A 2021-12-03 2021-12-03 异步任务调度执行方法、系统及服务器 Pending CN114138442A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111464926.2A CN114138442A (zh) 2021-12-03 2021-12-03 异步任务调度执行方法、系统及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111464926.2A CN114138442A (zh) 2021-12-03 2021-12-03 异步任务调度执行方法、系统及服务器

Publications (1)

Publication Number Publication Date
CN114138442A true CN114138442A (zh) 2022-03-04

Family

ID=80387436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111464926.2A Pending CN114138442A (zh) 2021-12-03 2021-12-03 异步任务调度执行方法、系统及服务器

Country Status (1)

Country Link
CN (1) CN114138442A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116954868A (zh) * 2023-09-19 2023-10-27 云粒智慧科技有限公司 调度引擎系统及其任务调度方法、数据请求方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180267884A1 (en) * 2017-03-16 2018-09-20 Google Llc Systems and methods for micro-scheduler testing framework
CN109933617A (zh) * 2019-03-08 2019-06-25 恒生电子股份有限公司 一种数据处理方法、装置以及相关设备和介质
CN112748993A (zh) * 2019-10-31 2021-05-04 北京国双科技有限公司 任务执行方法、装置、存储介质及电子设备
CN113051049A (zh) * 2020-07-10 2021-06-29 北京迈格威科技有限公司 任务调度系统、方法、电子设备及可读存储介质
CN113254506A (zh) * 2021-06-18 2021-08-13 浙江口碑网络技术有限公司 数据处理方法、装置、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180267884A1 (en) * 2017-03-16 2018-09-20 Google Llc Systems and methods for micro-scheduler testing framework
CN109933617A (zh) * 2019-03-08 2019-06-25 恒生电子股份有限公司 一种数据处理方法、装置以及相关设备和介质
CN112748993A (zh) * 2019-10-31 2021-05-04 北京国双科技有限公司 任务执行方法、装置、存储介质及电子设备
CN113051049A (zh) * 2020-07-10 2021-06-29 北京迈格威科技有限公司 任务调度系统、方法、电子设备及可读存储介质
CN113254506A (zh) * 2021-06-18 2021-08-13 浙江口碑网络技术有限公司 数据处理方法、装置、计算机设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116954868A (zh) * 2023-09-19 2023-10-27 云粒智慧科技有限公司 调度引擎系统及其任务调度方法、数据请求方法

Similar Documents

Publication Publication Date Title
CN112394922B (zh) 决策配置方法、业务决策方法和决策引擎系统
US11494291B2 (en) System and computer-implemented method for analyzing test automation workflow of robotic process automation (RPA)
CN109582301B (zh) 基于任务调度系统的业务处理方法、装置、设备及介质
US10460042B2 (en) Populating a knowledgebase of an expert system
US11138539B2 (en) Robtic business process automation system utilizing reusable task-based microbots
CN109634728A (zh) 作业调度方法、装置、终端设备及可读存储介质
CN105719126B (zh) 一种基于生命周期模型的互联网大数据任务调度的系统及方法
US11442837B2 (en) Monitoring long running workflows for robotic process automation
US20170220324A1 (en) Data communication accelerator system
CN111190892B (zh) 一种数据回填中处理异常数据的方法和装置
US8214245B2 (en) Method and system for synchronizing inclusive decision branches
CN108710532A (zh) 跨调度平台的依赖实现方法、装置、设备和存储介质
EP3786800B1 (en) Method and system for generating model driven applications using artificial intelligence
US9015533B1 (en) Error handling for asynchronous applications
CN116010066A (zh) 一种rpa机器人及实现方法
CN114138442A (zh) 异步任务调度执行方法、系统及服务器
US9170915B1 (en) Replay to reconstruct program state
CN116974716A (zh) 调度任务的发布方法、装置、电子设备及存储介质
US11113105B1 (en) Computer implemented system and method for generating platform agnostic digital worker
CN111324332A (zh) 大数据任务的处理方法及系统、电子设备、存储介质
Souri Formal specification and verification of a data replication approach in distributed systems
US9405636B2 (en) Recovering step and batch-based processes
CN111078236A (zh) 一种软件自动安装方法、系统、电子设备及存储介质
Geist et al. Towards functional safety and security for adaptive and flexible business processes
CN114327588A (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