CN113377348A - 应用于任务引擎的任务调整方法、相关装置和存储介质 - Google Patents

应用于任务引擎的任务调整方法、相关装置和存储介质 Download PDF

Info

Publication number
CN113377348A
CN113377348A CN202110651201.8A CN202110651201A CN113377348A CN 113377348 A CN113377348 A CN 113377348A CN 202110651201 A CN202110651201 A CN 202110651201A CN 113377348 A CN113377348 A CN 113377348A
Authority
CN
China
Prior art keywords
task
operator
directed acyclic
acyclic graph
target operator
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
Application number
CN202110651201.8A
Other languages
English (en)
Other versions
CN113377348B (zh
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202110651201.8A priority Critical patent/CN113377348B/zh
Publication of CN113377348A publication Critical patent/CN113377348A/zh
Application granted granted Critical
Publication of CN113377348B publication Critical patent/CN113377348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Landscapes

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

Abstract

本申请适用于区块链/信息技术领域,具体涉及一种应用于任务引擎的任务调整方法、相关装置和存储介质。其中,该任务调整方法包括:接收输入的任务新增请求,其中,该任务新增请求包括对如下信息的指示:待创建任务的处理对象及处理逻辑;基于该处理对象确定所述待创建任务与当前有向无环图所关联的各任务之间的依赖关系;基于该处理逻辑确定目标算子,其中,该目标算子具备执行该处理逻辑的功能;若成功确定该目标算子,则加载该目标算子的动态库并实例化该目标算子;基于实例化的目标算子和该依赖关系创建更新当前有向无环图,以便该任务引擎基于更新后的有向无环图执行相应的任务处理。本申请提供的技术方案可有效缓解开发人员的开发任务量。

Description

应用于任务引擎的任务调整方法、相关装置和存储介质
技术领域
本申请属于区块链/信息技术领域,尤其涉及一种应用于任务引擎的任务调整方法、相关装置和存储介质。
背景技术
随着信息技术的发展,数字化业务得到了推广和应用。数字化业务主要依赖于抽象化的业务流程设计实现,不同的业务流程通常对应不同的业务流程逻辑。
现有技术中,基于业务流程逻辑所对应的任务及各任务之间的依赖关系设计开发相应的任务引擎,以实现基于任务引擎的数字化业务流程处理。在每次业务流程逻辑发生变化时,需要开发人员针对新的业务流程逻辑重新开发新的任务引擎,开发任务量大。
发明内容
本申请实施例提供了一种应用于任务引擎的任务调整方法、相关装置和存储介质,可以缓解开发人员的开发任务量。
本申请第一方面提供一种应用于任务引擎的任务调整方法,上述任务引擎基于有向无环图配置,上述有向无环图中的每个节点关联一任务,每个任务的处理逻辑由对应的算子实现,且上述有向无环图中的每条边用以描述相关任务之间的依赖关系,上述任务调整方法包括:包括:
接收输入的任务新增请求,其中,上述任务新增请求包括对如下信息的指示:待创建任务的处理对象及处理逻辑;
基于上述处理对象确定上述待创建任务与当前有向无环图所关联的各任务之间的依赖关系;
基于上述处理逻辑确定目标算子,其中,上述目标算子具备执行上述处理逻辑的功能;
在成功确定上述目标算子时,加载上述目标算子的动态库并实例化上述目标算子;
基于实例化的目标算子和上述依赖关系更新当前有向无环图,以便上述任务引擎基于更新后的有向无环图执行相应的任务处理。
基于第一方面,在第一种可能的实现方式中,上述基于上述处理逻辑确定目标算子具体为:基于上述处理逻辑,从多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子。
基于第一方面的第一种可能的实现方式,在第二种可能的实现方式中,上述从多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子,包括:
确定上述任务引擎所在设备的资源可用率;
若多个具备执行上述处理逻辑的算子中,存在资源占用率不大于上述资源可用率的算子,则从上述多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子;
若多个具备执行上述处理逻辑的算子中,不存在资源占用率不大于上述资源可用率的算子,则输出告警信息,上述告警信息用以指示当前无法成功确定目标算子。
基于第一方面,第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第三种可能的实现方式中,上述创建的节点设置有对应的销毁条件;
上述基于创建的节点更新上述有向无环图,之后还包括:
在上述创建的节点对应的任务执行完成后,判断当前上述创建的节点是否满足上述销毁条件;
若当前上述创建的节点满足上述销毁条件,则在当前有向无环图中删除上述创建的节点并释放上述目标算子所占用的资源。
基于第一方面,第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第四种可能的实现方式中,上述任务调整方法还包括:
接收输入的任务删除请求,其中,上述任务删除请求包括对待删除任务的指示信息;
基于上述指示信息,在当前有向无环图删除上述待删除任务所关联的节点,并释放被删除任务对应的算子所占用的资源。
基于第一方面,第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第五种可能的实现方式中,上述有向无环图包含:与多输出任务关联的输出节点,上述输出节点依赖于两个以上节点且不存在被依赖的节点,上述多输出任务用以输出所依赖的节点的处理结果;
上述任务新增请求还包括:输出指示信息,上述输出指示信息用以指示上述待创建任务是否被上述多输出任务依赖;
上述基于上述处理对象确定上述待创建任务与有向无环图所关联的各任务之间的依赖关系,为:基于上述处理对象和上述输出指示信息,确定上述待创建任务与有向无环图所关联的各任务之间的依赖关系。
基于第一方面,第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第六种可能的实现方式中,上述基于实例化的目标算子和上述依赖关系创建更新当前有向无环图还包括:将更新后的有向无环图上传至区块链中。
本申请第二方面提供一种应用于任务引擎的任务调整装置,上述任务引擎基于有向无环图配置,上述有向无环图中的每个节点关联一任务,每个任务的处理逻辑由对应的算子实现,且上述有向无环图中的每条边用以描述相关任务之间的依赖关系,上述任务调整装置包括:
接收模块,用于接收输入的任务新增请求,其中,上述任务新增请求包括对如下信息的指示:待创建任务的处理对象及处理逻辑;
关系确定模块,用于基于上述处理对象确定上述待创建任务与当前有向无环图所关联的各任务之间的依赖关系;
算子确定模块,用于基于上述处理逻辑确定目标算子,其中,上述目标算子具备执行上述处理逻辑的功能;
算子处理模块,用于当上述算子确定模块成功确定上述目标算子时,加载上述目标算子的动态库并实例化上述目标算子;
更新模块,用于基于实例化的目标算子和上述依赖关系更新当前有向无环图,以便上述任务引擎基于更新后的有向无环图执行相应的任务处理。
基于本申请第二方面,在第一种可能的实现方式中,上述算子确定模块具体用于:基于上述处理逻辑,从多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子。
本申请第三方面提供一种应用于任务引擎的任务调整装置,上述任务引擎基于有向无环图配置,上述有向无环图中的每个节点关联一任务,每个任务的处理逻辑由对应的算子实现,且上述有向无环图中的每条边用以描述相关任务之间的依赖关系;上述任务调整装置包括:存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上第一方面任一项上述的任务调整方法。
本申请第四方面提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上第一方面上述的任务调整方法。
本申请第五方面提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项上述的任务调整方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请与现有技术相比存在的有益效果是:在基于有向无环图配置的任务引擎中,可通过任务新增请求触发任务的创建和有向无环图的更新,一方面,当需要在原有业务流程逻辑中新增处理逻辑时,可通过输入任务新增请求实现任务引擎中任务的调整,无需开发人员针对变化后的业务流程逻辑重新开发任务引擎,可在一定程度缓解开发人员的开发任务量;另一方面,基于本申请方案,有利于实现任务引擎的轻量化,即可在前期开发轻量化的任务引擎,后期跟进需求再对任务引擎进行任务调整。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种场景下的DAG示意图;
图2为本申请实施例提供的一种任务引擎的框架示意图;
图3为本申请实施例提供的一种任务调整方法的流程示意图;
图4为本申请实施例提供的一种基于DAG的任务处理流程示意图;
图5为本申请实施例提供的另一种任务调整方法的流程示意图;
图6为本申请实施例提供的再一种任务调整方法的流程示意图;
图7为本申请实施例提供的一种任务调整装置的结构示意图;
图8为本申请实施例提供的另一种任务调整装置的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本实施例提供一种应用于任务引擎的任务调整方法、相关装置和存储介质,其中,该任务引擎基于有向无环图(DAG,Directed Acyclic Graph)配置,上述有向无环图中的每个节点关联一任务,每个任务的处理逻辑由对应的算子实现,且上述有向无环图中的每条边用以描述相关任务之间的依赖关系。
下面对DAG进行更详细的说明,DAG是一种无回路的有向图,可以用于实现依赖管理,比如:在某一任务(如任务1)执行之前,需要先完成另一任务(如任务2),因为任务1的输入是任务2的输出。当存在多个类似的依赖关系时,就催生出了依赖管理的需求。关于DAG的示意图可参照图1所示,每个任务可以描述为DAG中的节点,如图1中的节点1、节点2、节点3、节点4和节点5分别关联不同的任务,每个任务的处理逻辑由对应的算子实现,在图1中,不同任务之间的依赖关系可以描述为DAG中的一条边,比如图1中的边a用以描述节点2所关联的任务对节点1所关联的任务的依赖,即节点2依赖于节点1,节点1被节点2所依赖。本实施例中,可通过图文件配置信息对DAG进行配置,具体的,图文件配置信息可包括:运行环境(如linux、windows或ARM)、输入信息、输出信息和算子信息等。其中,算子信息可包括:算子名称、算子类型、算子id、算子初始化信息以及算子间的运行依赖等。
本实施例中提及的任务引擎基于DAG配置,以通过DAG实现对任务的调度和执行。具体的,在一种应用场景中,该任务引擎的框架可以如图2所示,包括:任务图解析器和任务图运行引擎。
其中,任务图解析器被配置用以读取并解析DAG(如读取并解析上述图文件配置信息),以获得与DAG相关的算子列表及各节点之间的依赖关系,根据算子列表动态加载算子动态库并实例化对应的算子,基于实例化的算子和各节点之间的依赖关系配置生成算子的出入参以及运行配置信息。
任务图运行引擎被配置用以基于DAG对任务进行调度和执行,具体包括:算子管家和任务管家,算子管家用以管理实例化的算子,任务管家用以实现任务的调度,算子管家配置有用以兼容不同类型算子的算子接口,如图2所示,算子接口可兼容PYtorch算子(即基于pytorch框架实现的算子)、TF算子(即tensorflow框架实现的算子)、Caffe算子(即基于Caffe框架实现的算子)、ONNX算子(即基于ONNX框架实现的算子)和其它通用算子。
上述任务引擎可通过纯C++语言实现,以利于代码量最小化。进一步,上述任务管家可基于环形缓冲器进行任务调度的设计。
下面以一实施例对应用于任务引擎的任务调整方法进行描述,具体的,该任务引擎的框架可参照前述描述,如图3所示,该任务调整方法包括:
步骤301、接收输入的任务新增请求;
本实施例中,上述任务新增请求包括对如下信息的指示:待创建任务的处理对象及处理逻辑。
在实际应用中,当需要在已有任务引擎基础上新增任务时,可以通过cmd指令或预先配置的可视化界面输入上述任务新增请求,以触发图3所示流程的执行。其中,上述待创建任务的处理对象可指示待创建任务的输入源,上述处理逻辑指具体的运行算法。举例说明,假如在图1基础上,欲创建一节点对节点2的输出情况进行异常监控,则可配置待创建任务的处理对象为节点2的输出数据,处理逻辑为相应的异常监控算法。
步骤302、基于上述处理对象确定上述待创建任务与当前有向无环图所关联的各任务之间的依赖关系;
由于处理对象可指示即待创建任务的输入信息,因此,在步骤302中,基于上述处理对象即可确定上述待创建任务与当前有向无环图所关联的各任务之间的依赖关系。
以前述举例进一步说明,当待创建任务的处理对象为节点2的输出数据,则可确定待创建任务依赖于节点2所关联的任务。
可选的,本实施例的任务引擎还支持多输出。具体的,上述DAG可包含:与多输出任务关联的输出节点,上述输出节点依赖于两个以上节点且不存在被依赖的节点,上述多输出任务用以输出所依赖的节点的处理结果。步骤301所提及的任务新增请求还包括:输出指示信息,上述输出指示信息用以指示上述待创建任务是否被上述多输出任务依赖。在步骤302中,可基于上述处理对象和上述输出指示信息,确定上述待创建任务与有向无环图所关联的各任务之间的依赖关系。
步骤303、基于上述处理逻辑确定目标算子;
其中,上述目标算子具备执行上述处理逻辑的功能。在步骤303中,已知待创建任务的处理逻辑,可在本地字典或远程的算子库中查找匹配的算子作为目标算子。具体的,可优先在本次全局字典中查找与该处理逻辑相匹配的算子,当查找不到相匹配的算子时,在远程的算子库中查找与该处理逻辑相匹配的算子,最终确定目标算子。
应理解,在步骤303中,存在可成功确定目标算子和无法成功确定目标算子的情况,当成功确定目标算子时,可执行步骤304及之后步骤。当无法成功目标算子时,不执行步骤304及后续步骤。
由于不同类型算子所占用资源有可能不同,为了进一步提高资源利用率,可选的,在步骤303中,当存在多个具备执行上述处理逻辑的算子时,可从多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子。也即,步骤303具体可表现为:基于上述处理逻辑,从多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子。具体的,算子的资源占用率可基于算子所需的资源(如所需的gpu个数、cpu个数、内存/显存大小等)进行计算。
进一步,为提高系统可靠性,避免资源过度消耗而引发的宕机现象,在确定目标算子之前,还可以结合上述任务引擎所在设备的资源可用率进行目标算子的确定。具体的,上述从多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子包括:
确定上述任务引擎所在设备的资源可用率;
若多个具备执行上述处理逻辑的算子中,存在资源占用率不大于上述资源可用率的算子,则从上述多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子;
若多个具备执行上述处理逻辑的算子中,不存在资源占用率不大于上述资源可用率的算子,则输出告警信息,上述告警信息用以指示当前无法成功确定目标算子。
步骤304、在成功确定上述目标算子时,则加载上述目标算子的动态库并实例化上述目标算子;
本实施例中,当步骤303成功确定上述目标算子时,可加载上述目标算子的动态库并实例化上述目标算子。
具体的,本实施例可通过算子列表维护一个key为算子id,value为算子创建函数的字典,每个算子的动态库实现均要需要注册到该字典上。类似REGISTER(NS,CLASS,OPID,OPVERSION),其中,第一个参数NS表示算子名称,第二个参数CLASS表示算子类型,第三个参数表示算子id,第四个参数OPVERSION表示算子版本。每个算子存在对应的配置参数,配置参数可由开发人员预先根据数据处理需求进行设置。
本实施例中,当确定上述目标算子时,可获取并加载该目标算子对应的动态库,之后实例化该目标算子,以得到相应的算子对象。实例化算子的具体过程可参照已有技术实现,此处不再赘述。
步骤305、基于实例化的目标算子和上述依赖关系更新当前有向无环图;
在步骤305中,基于实例化的目标算子和上述依赖关系可生成相应的任务,并创建关联的节点,基于创建的节点更新当前有向无环图,以便上述任务引擎基于更新后的有向无环图执行相应的任务处理。
具体的,上述任务引擎基于更新后的有向无环图执行相应的任务处理的流程可参照图4所示的流程,包括:
步骤401、读取图文件配置,得到DAG基本数据结构;
步骤402、根据算子列表加载动态库;
步骤403、根据算子列表实例化算子,并根据算子的初始化参数自动调用算子初始化方法;
步骤404、根据依赖关系创建DAG并设置运行参数,以开始运行上述任务引擎;
步骤405、基于上述任务引擎获得相应的输出结果。
具体的,步骤401~步骤404中的具体过程可参照前述实施例的说明,此处不再赘述。
由上可见,在基于有向无环图配置的任务引擎中,可通过任务新增请求触发任务的创建和有向无环图的更新,一方面,当需要在原有业务流程逻辑中新增处理逻辑时,可通过输入任务新增请求实现任务引擎中任务的调整,无需开发人员针对变化后的业务流程逻辑重新开发任务引擎,可在一定程度缓解开发人员的开发任务量;另一方面,基于本申请方案,有利于实现任务引擎的轻量化,即可在前期开发轻量化的任务引擎,后期跟进需求再对任务引擎进行任务调整。
进一步,在图3所示实施例的基础上,用户还可以对不必要的节点进行销毁,以释放资源,提高资源利用率。以一具体应用场景为例,比如,为了捕获某一任务(如任务A)的输出情况,用户通过前述任务新增请求触发图3所示流程创建一任务(如任务B)用于监控任务A的输出情况。当根据捕获到的输出情况已查明问题时,已不再需要任务B,此时可将任务B删除,从而释放(即回收)任务B对应算子所占用的资源,从而提升整体的性能。具体的,在图3所示实施例的基础上,如图5所示,本申请另一实施例提供的任务调整方法包括:
步骤501~505,具体的,步骤501~505可参照图3所示实施例中步骤301~305的描述,此处不再赘述;
步骤506、在上述创建的节点对应的任务执行完成后,判断当前上述创建的节点是否满足上述销毁条件;
本实施例中,每个创建的节点可设置对应的销毁条件,销毁条件例如可以是对相应节点的运行次数满足一阈值、运行结果满足一条件等。
在步骤506中,可在上述创建的节点对应的任务执行完成后,判断当前上述创建的节点是否满足对应的销毁条件,若当前上述创建的节点满足对应的销毁条件,则进入步骤507,否则可返回步骤506,等待该任务再次执行完成后进行相应的判断。
步骤507、在当前有向无环图中删除上述创建的节点并释放上述目标算子所占用的资源;
在步骤507中,删除满足销毁条件的节点(为便于引用,后面描述为被删除节点),并释放相应算子所占用的资源,以提升整体的性能。进一步,若当前DAG中存在依赖于该被删除节点的节点,则删除二者(即被删掉节点、及依赖于该被删除节点的节点)之间的依赖关系。进一步,若依赖于该被删除节点的节点此前只依赖于该被删除节点,则可同步删除该节点并释放相应算子所占用的资源。
图5所示实施例是在新创建的节点满足销毁条件时自动销毁,在其它实施例中,用户也可以主动请求对删除任务引擎中的某一任务,以使得任务引擎灵活性更强。具体的,如图6所示,上述任务调整方法还包括:
步骤601、接收输入的任务删除请求;
其中,上述任务删除请求包括对待删除任务的指示信息。
在实际应用中,当需要在已有任务引擎基础上删除任务时,可以通过cmd指令或预先配置的可视化界面输入上述任务删除请求,以触发图6所示流程的执行。
步骤602、基于上述指示信息,在当前有向无环图删除上述待删除任务所关联的节点,并释放被删除任务对应的算子所占用的资源;
在步骤602中,基于上述指示信息确定所要删除的节点,在当前有向无环图删除上述待删除任务所关联的节点,并释放被删除任务对应的算子所占用的资源。进一步,若存在依赖于该待删除任务的任务,则删除二者(即待删除任务、及依赖于该待删除任务的任务)之间的依赖关系。进一步,若依赖于该待删除任务的任务此前只依赖于该待删除任务,则可同步删除该任务关联的节点并释放相应算子所占用的资源。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。内容相同的步骤不再赘述其工作过程。
进一步的,本实施还提供一种应用于任务引擎的任务调整装置,该任务引擎基于有向无环图配置,上述有向无环图中的每个节点关联一任务,每个任务的处理逻辑由对应的算子实现,且上述有向无环图中的每条边用以描述相关任务之间的依赖关系,具体的,该任务调整装置可由软件和/或硬件组成,可以是集成在上述任务引擎中,也可以是独立于该任务引擎的装置。如图7所示,该任务调整装置包括:
接收模块701,用于接收输入的任务新增请求,其中,上述任务新增请求包括对如下信息的指示:待创建任务的处理对象及处理逻辑;
关系确定模块702,用于基于上述处理对象确定上述待创建任务与当前有向无环图所关联的各任务之间的依赖关系;
算子确定模块703,用于基于上述处理逻辑确定目标算子,其中,上述目标算子具备执行上述处理逻辑的功能;
算子处理模块704,用于当上述算子确定模块成功确定上述目标算子时,加载上述目标算子的动态库并实例化上述目标算子;
更新模块705,用于基于实例化的目标算子和上述依赖关系更新当前有向无环图,以便上述任务引擎基于更新后的有向无环图执行相应的任务处理。
可选的,算子确定模块704具体用于:基于上述处理逻辑,从多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子。
进一步,算子确定模块704具体用于:确定上述任务引擎所在设备的资源可用率;若多个具备执行上述处理逻辑的算子中,存在资源占用率不大于上述资源可用率的算子,则从上述多个具备执行上述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子;若多个具备执行上述处理逻辑的算子中,不存在资源占用率不大于上述资源可用率的算子,则输出告警信息,上述告警信息用以指示当前无法成功确定目标算子。
可选的,上述创建的节点设置有对应的销毁条件。更新模块705还可用于:在上述创建的节点对应的任务执行完成后,判断当前上述创建的节点是否满足上述销毁条件;若当前上述创建的节点满足上述销毁条件,则在当前有向无环图中删除上述创建的节点并释放上述目标算子所占用的资源。
可选的,接收模块701还可用于接收输入的任务删除请求,其中,上述任务删除请求包括对待删除任务的指示信息。更新模块705还可用于:当接收模块701接收到上述任务删除请求时,基于上述指示信息,在当前有向无环图删除上述待删除任务所关联的节点,并释放被删除任务对应的算子所占用的资源。
可选的,上述有向无环图包含:与多输出任务关联的输出节点,上述输出节点依赖于两个以上节点且不存在被依赖的节点,上述多输出任务用以输出所依赖的节点的处理结果。上述任务新增请求还包括:输出指示信息,上述输出指示信息用以指示上述待创建任务是否被上述多输出任务依赖。关系确定模块702具体用于基于上述处理对象和上述输出指示信息,确定上述待创建任务与有向无环图所关联的各任务之间的依赖关系。
由上可见,在基于有向无环图配置的任务引擎中,可通过任务新增请求触发任务的创建和有向无环图的更新,一方面,当需要在原有业务流程逻辑中新增处理逻辑时,可通过输入任务新增请求实现任务引擎中任务的调整,无需开发人员针对变化后的业务流程逻辑重新开发任务引擎,可在一定程度缓解开发人员的开发任务量;另一方面,基于本申请方案,有利于实现任务引擎的轻量化,即可在前期开发轻量化的任务引擎,后期跟进需求再对任务引擎进行任务调整。
需要说明的是,上述模块的具体执行过程,模块之间的信息交互等内容,由于与前述方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图8是本申请另一实施例提供的任务调整装置的结构示意图。如图8所示,本实施例还提供一种任务调整装置,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上方法实施例所述的任务调整方法。其中,存储器和处理器通过总线互连。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器在一些实施例中可以是任务调整装置的内部存储单元,例如硬盘或内存,在另一些实施例中也可以是任务调整装置的外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器还可以既包括内部存储单元也包括外部存储设备。所述存储器用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备(如手机、平板电脑、计算机和笔记本等)上运行时,使得电子设备执行时实现可实现上述各个方法实施例中的步骤。
在本申请的所有实施例中,可进一步将更新后的DAG上传至区块链中,可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该DAG上,以便查证DAG是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种应用于任务引擎的任务调整方法,其特征在于,所述任务引擎基于有向无环图配置,所述有向无环图中的每个节点关联一任务,每个任务的处理逻辑由对应的算子实现,且所述有向无环图中的每条边用以描述相关任务之间的依赖关系,所述任务调整方法包括:
接收输入的任务新增请求,其中,所述任务新增请求包括对如下信息的指示:待创建任务的处理对象及处理逻辑;
基于所述处理对象确定所述待创建任务与当前有向无环图所关联的各任务之间的依赖关系;
基于所述处理逻辑确定目标算子,其中,所述目标算子具备执行所述处理逻辑的功能;
在成功确定所述目标算子时,加载所述目标算子的动态库并实例化所述目标算子;
基于实例化的目标算子和所述依赖关系创建更新当前有向无环图,以便所述任务引擎基于更新后的有向无环图执行相应的任务处理。
2.根据权利要求1所述的任务调整方法,其特征在于,所述基于所述处理逻辑确定目标算子具体为:基于所述处理逻辑,从多个具备执行所述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子。
3.根据权利要求2所述的任务调整方法,其特征在于,所述从多个具备执行所述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子,包括:
确定所述任务引擎所在设备的资源可用率;
若多个具备执行所述处理逻辑的算子中,存在资源占用率不大于所述资源可用率的算子,则从所述多个具备执行所述处理逻辑的算子中确定出资源占用率最少的算子作为目标算子;
若多个具备执行所述处理逻辑的算子中,不存在资源占用率不大于所述资源可用率的算子,则输出告警信息,所述告警信息用以指示当前无法成功确定目标算子。
4.根据权利要求1至3任一项所述的任务调整方法,其特征在于,所述创建的节点设置有对应的销毁条件;
所述基于创建的节点更新所述有向无环图,之后还包括:
在所述创建的节点对应的任务执行完成后,判断当前所述创建的节点是否满足所述销毁条件;
若当前所述创建的节点满足所述销毁条件,则在当前有向无环图中删除所述创建的节点并释放所述目标算子所占用的资源。
5.根据权利要求1至3任一项所述的任务调整方法,其特征在于,所述任务调整方法还包括:
接收输入的任务删除请求,其中,所述任务删除请求包括对待删除任务的指示信息;
基于所述指示信息,在当前有向无环图删除所述待删除任务所关联的节点,并释放被删除任务对应的算子所占用的资源。
6.根据权利要求1至3任一项所述的任务调整方法,其特征在于,所述有向无环图包含:与多输出任务关联的输出节点,所述输出节点依赖于两个以上节点且不存在被依赖的节点,所述多输出任务用以输出所依赖的节点的处理结果;
所述任务新增请求还包括:输出指示信息,所述输出指示信息用以指示所述待创建任务是否被所述多输出任务依赖;
所述基于所述处理对象确定所述待创建任务与有向无环图所关联的各任务之间的依赖关系为:基于所述处理对象和所述输出指示信息,确定所述待创建任务与有向无环图所关联的各任务之间的依赖关系。
7.根据权利要求1至3任一项所述的任务调整方法,其特征在于,所述基于实例化的目标算子和所述依赖关系创建更新当前有向无环图还包括:
将更新后的有向无环图上传至区块链中。
8.一种应用于任务引擎的任务调整装置,其特征在于,所述任务引擎基于有向无环图配置,所述有向无环图中的每个节点关联一任务,每个任务的处理逻辑由对应的算子实现,且所述有向无环图中的每条边用以描述相关任务之间的依赖关系,所述任务调整装置包括:
接收模块,用于接收输入的任务新增请求,其中,所述任务新增请求包括对如下信息的指示:待创建任务的处理对象及处理逻辑;
关系确定模块,用于基于所述处理对象确定所述待创建任务与当前有向无环图所关联的各任务之间的依赖关系;
算子确定模块,用于基于所述处理逻辑确定目标算子,其中,所述目标算子具备执行所述处理逻辑的功能;
算子处理模块,用于当所述算子确定模块成功确定所述目标算子时,加载所述目标算子的动态库并实例化所述目标算子;
更新模块,用于基于实例化的目标算子和所述依赖关系更新当前有向无环图,以便所述任务引擎基于更新后的有向无环图执行相应的任务处理。
9.一种应用于任务引擎的任务调整装置,其特征在于,所述任务引擎基于有向无环图配置,所述有向无环图中的每个节点关联一任务,每个任务的处理逻辑由对应的算子实现,且所述有向无环图中的每条边用以描述相关任务之间的依赖关系;
所述任务调整装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
CN202110651201.8A 2021-06-10 2021-06-10 应用于任务引擎的任务调整方法、相关装置和存储介质 Active CN113377348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110651201.8A CN113377348B (zh) 2021-06-10 2021-06-10 应用于任务引擎的任务调整方法、相关装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110651201.8A CN113377348B (zh) 2021-06-10 2021-06-10 应用于任务引擎的任务调整方法、相关装置和存储介质

Publications (2)

Publication Number Publication Date
CN113377348A true CN113377348A (zh) 2021-09-10
CN113377348B CN113377348B (zh) 2024-06-28

Family

ID=77573974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110651201.8A Active CN113377348B (zh) 2021-06-10 2021-06-10 应用于任务引擎的任务调整方法、相关装置和存储介质

Country Status (1)

Country Link
CN (1) CN113377348B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637492A (zh) * 2022-03-17 2022-06-17 湖南快乐阳光互动娱乐传媒有限公司 一种面向对象业务逻辑的处理方法及装置
CN115378999A (zh) * 2022-10-26 2022-11-22 小米汽车科技有限公司 服务容量调整方法及其装置
CN115987751A (zh) * 2023-03-20 2023-04-18 阿里云计算有限公司 云网络架构和用于维护具有依赖关系的实体对象的方法
CN116088968A (zh) * 2023-04-10 2023-05-09 北京渲光科技有限公司 图形引擎管理方法、装置、终端和存储介质
CN116107665A (zh) * 2023-04-10 2023-05-12 北京渲光科技有限公司 工程项目配置方法、装置、终端和存储介质
CN116721007A (zh) * 2023-08-02 2023-09-08 摩尔线程智能科技(北京)有限责任公司 任务控制方法、系统及装置、电子设备和存储介质
WO2023178766A1 (zh) * 2022-03-25 2023-09-28 北京邮电大学 基于Flink引擎计算节点动态扩展的任务评价方法和装置
CN117539630A (zh) * 2023-11-20 2024-02-09 上海直真君智科技有限公司 一种基于dag延伸机制的云际异构联合计算方法和系统
CN117610320A (zh) * 2024-01-23 2024-02-27 中国人民解放军国防科技大学 有向无环图工作流引擎循环调度方法、装置和设备
CN117950764A (zh) * 2024-01-31 2024-04-30 中国兵器工业计算机应用技术研究所 一种基于中间数据的任务断点重跑方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257900A (zh) * 2013-05-24 2013-08-21 杭州电子科技大学 减少cpu占用的多处理器上实时任务集资源预留方法
CN104239135A (zh) * 2014-05-19 2014-12-24 江苏科技大学 有向无环图的可重构系统的混合任务调度方法
US10437600B1 (en) * 2017-05-02 2019-10-08 Ambarella, Inc. Memory hierarchy to transfer vector data for operators of a directed acyclic graph
CN110888720A (zh) * 2019-10-08 2020-03-17 北京百度网讯科技有限公司 任务处理方法、装置、计算机设备及存储介质
CN111831424A (zh) * 2019-04-17 2020-10-27 杭州海康威视数字技术股份有限公司 一种任务处理方法、系统及装置
CN112069204A (zh) * 2020-09-30 2020-12-11 北京百度网讯科技有限公司 用于算子服务的处理方法、装置、智能工作站和电子设备
CN112363819A (zh) * 2020-12-02 2021-02-12 深圳市房多多网络科技有限公司 大数据任务动态编排调度方法、装置及计算设备
CN112685154A (zh) * 2020-12-25 2021-04-20 北京有竹居网络技术有限公司 任务流引擎的数据处理方法、任务流引擎、设备和介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257900A (zh) * 2013-05-24 2013-08-21 杭州电子科技大学 减少cpu占用的多处理器上实时任务集资源预留方法
CN104239135A (zh) * 2014-05-19 2014-12-24 江苏科技大学 有向无环图的可重构系统的混合任务调度方法
US10437600B1 (en) * 2017-05-02 2019-10-08 Ambarella, Inc. Memory hierarchy to transfer vector data for operators of a directed acyclic graph
CN111831424A (zh) * 2019-04-17 2020-10-27 杭州海康威视数字技术股份有限公司 一种任务处理方法、系统及装置
CN110888720A (zh) * 2019-10-08 2020-03-17 北京百度网讯科技有限公司 任务处理方法、装置、计算机设备及存储介质
CN112069204A (zh) * 2020-09-30 2020-12-11 北京百度网讯科技有限公司 用于算子服务的处理方法、装置、智能工作站和电子设备
CN112363819A (zh) * 2020-12-02 2021-02-12 深圳市房多多网络科技有限公司 大数据任务动态编排调度方法、装置及计算设备
CN112685154A (zh) * 2020-12-25 2021-04-20 北京有竹居网络技术有限公司 任务流引擎的数据处理方法、任务流引擎、设备和介质

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637492B (zh) * 2022-03-17 2024-09-03 湖南快乐阳光互动娱乐传媒有限公司 一种面向对象业务逻辑的处理方法及装置
CN114637492A (zh) * 2022-03-17 2022-06-17 湖南快乐阳光互动娱乐传媒有限公司 一种面向对象业务逻辑的处理方法及装置
WO2023178766A1 (zh) * 2022-03-25 2023-09-28 北京邮电大学 基于Flink引擎计算节点动态扩展的任务评价方法和装置
CN115378999A (zh) * 2022-10-26 2022-11-22 小米汽车科技有限公司 服务容量调整方法及其装置
CN115987751A (zh) * 2023-03-20 2023-04-18 阿里云计算有限公司 云网络架构和用于维护具有依赖关系的实体对象的方法
WO2024193347A1 (zh) * 2023-03-20 2024-09-26 杭州阿里云飞天信息技术有限公司 云网络架构和用于维护具有依赖关系的实体对象的方法
CN116088968A (zh) * 2023-04-10 2023-05-09 北京渲光科技有限公司 图形引擎管理方法、装置、终端和存储介质
CN116107665A (zh) * 2023-04-10 2023-05-12 北京渲光科技有限公司 工程项目配置方法、装置、终端和存储介质
CN116107665B (zh) * 2023-04-10 2023-10-27 北京渲光科技有限公司 工程项目配置方法、装置、终端和存储介质
CN116721007B (zh) * 2023-08-02 2023-10-27 摩尔线程智能科技(北京)有限责任公司 任务控制方法、系统及装置、电子设备和存储介质
CN116721007A (zh) * 2023-08-02 2023-09-08 摩尔线程智能科技(北京)有限责任公司 任务控制方法、系统及装置、电子设备和存储介质
CN117539630A (zh) * 2023-11-20 2024-02-09 上海直真君智科技有限公司 一种基于dag延伸机制的云际异构联合计算方法和系统
CN117610320A (zh) * 2024-01-23 2024-02-27 中国人民解放军国防科技大学 有向无环图工作流引擎循环调度方法、装置和设备
CN117610320B (zh) * 2024-01-23 2024-04-02 中国人民解放军国防科技大学 有向无环图工作流引擎循环调度方法、装置和设备
CN117950764A (zh) * 2024-01-31 2024-04-30 中国兵器工业计算机应用技术研究所 一种基于中间数据的任务断点重跑方法及系统
CN117950764B (zh) * 2024-01-31 2024-09-17 中国兵器工业计算机应用技术研究所 一种基于中间数据的任务断点重跑方法及系统

Also Published As

Publication number Publication date
CN113377348B (zh) 2024-06-28

Similar Documents

Publication Publication Date Title
CN113377348B (zh) 应用于任务引擎的任务调整方法、相关装置和存储介质
CN111176802B (zh) 任务处理方法、装置、电子设备及存储介质
JP2017107555A (ja) ソフトウェア・コンテナ中のソフトウェアの識別を決定するための方法、システム、およびプログラム
US20190207823A1 (en) Dynamic delivery of software functions
US10305752B2 (en) Automatically orchestrating the compliance of cloud services to selected standards and policies
CN111752587B (zh) 小程序的批量处理方法、装置、电子设备以及可读存储介质
CN111580926A (zh) 模型发布方法、模型部署方法、装置、设备及存储介质
CN111988429A (zh) 算法调度方法以及系统
CN111679888A (zh) 一种代理容器的部署方法及装置
CN114443159A (zh) 一种插件处理装置、方法、计算机设备和存储介质
CN111221550A (zh) 用于流式计算的规则更新方法、装置及流式计算系统
CN115982491A (zh) 页面更新方法及装置、电子设备和计算机可读存储介质
CN110704131B (zh) 一种html5应用调用原生应用的方法和装置
CN109657485B (zh) 权限处理方法、装置、终端设备和存储介质
CN112199200B (zh) 资源调度方法、装置、计算机设备和存储介质
CN114840221A (zh) 云服务器部署方法、装置、系统、存储介质及计算机设备
CN109683992B (zh) 用于管理对象的方法和装置
CN111273939B (zh) 信息处理方法、信息处理装置及终端设备
CN113191889A (zh) 风控配置方法、配置系统、电子设备及可读存储介质
CN112068895B (zh) 代码配置方法、装置、视频播放设备及存储介质
CN115291980A (zh) 业务弹窗控制方法、装置、计算机设备及存储介质
EP4194067A1 (en) Game engine resource processing method and apparatus, and electronic device and computer-readable storage medium
CN113918525A (zh) 数据交换调度方法、系统、电子设备、介质及程序产品
CN114303131B (zh) 一种文件处理方法、文件处理装置及终端设备
CN112667491B (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