子任务序列的触发执行方法、系统及电子设备技术方案

技术编号:35026517 阅读:25 留言:0更新日期:2022-09-24 22:58
本发明专利技术公开了一种子任务序列的触发执行方法、系统及电子设备,其中方法包括:将每个文件处理能力独立封装为子任务,基于所有子任务编排任务链路;根据所述任务链路,构建分布式异步消息队列的可执行序列对象;执行所述可执行序列对象,触发执行子任务序列。本发明专利技术实施例可以编排任务链路,并触发执行子任务,通过将所有子任务编排任务链路,可以得到子任务的在完整任务链路中的具体位置和上下游的子任务,使得子任务在数据较多时依然可以准确定位,避免子任务丢失。避免子任务丢失。避免子任务丢失。

【技术实现步骤摘要】
子任务序列的触发执行方法、系统及电子设备


[0001]本专利技术涉及数据资产管理
,具体涉及一种子任务序列的触发执行方法、系统及电子设备。

技术介绍

[0002]在数据资产管理(Data Asset Management,简称为DAM)业务场景下,对用户的视频、图片等多媒体文件进行离线处理是一个DAM工具需要具备的能力。DAM业务场景下需要被处理的文件数量较多,每日需要处理的各类文件处理任务量级在10w级别,并且,对于不同的多媒体文件,需要采用不同的文件处理能力来进行处理,例如视频抽帧、视频人脸识别、图片智能打标等。
[0003]然而,在现有DAM业务场景下采用文件处理能力时,容易因为文件任务量或使用的文件处理能力过多导致文件处理过程中发生混乱,出现任务丢失现象,无法实现任务的触发执行。
[0004]针对相关技术中文件任务量或使用的文件处理能力过多导致文件处理过程中发生混乱,出现任务丢失的问题,目前尚未提出有效的解决方案。

技术实现思路

[0005]本专利技术的主要目的在于提供一种子任务序列的触发执行方法及系统,以解决相关技术中文件任务量或使用的文件处理能力过多导致文件处理过程中发生混乱,出现任务丢失的问题。
[0006]为了实现上述目的,本专利技术的第一方面提供了一种子任务序列的触发执行方法,包括:
[0007]将每个文件处理能力独立封装为子任务,基于所有子任务编排任务链路;
[0008]根据所述任务链路,构建分布式异步消息队列的可执行序列对象;
>[0009]执行所述可执行序列对象,触发执行子任务序列。
[0010]可选地,所述基于所有子任务编排任务链路,包括按照第一周期重复执行下述步骤:
[0011]基于所有子任务,获取各个子任务对应的子任务数据;
[0012]根据所述子任务数据,按照第二周期构建子任务链路图;
[0013]根据所述子任务链路图,构建每个子任务的执行链路。
[0014]进一步地,所述基于所有子任务,获取各个子任务对应的子任务数据,包括:
[0015]每个执行端启动时,按照第三周期向消息队列发送所述执行端承载的所有子任务对应的心跳数据;
[0016]消息队列按照第四周期向指挥端同步所述心跳数据;
[0017]其中,心跳数据包括每个执行端承载的所有子任务的元信息,所述元信息包括能力名称、能力版本、前置依赖和支持文件类型。
[0018]进一步地,所述根据所述子任务数据,按照第二周期构建子任务链路图,包括:
[0019]指挥端根据接收的心跳数据构建子任务有向无环图;
[0020]基于所述子任务有向无环图,提取每个子任务的最短执行链路;
[0021]从根节点向子任务节点触发执行所述最短执行链路;
[0022]如果所述最短执行链路包含并行链路,则在子任务节点的所有前置并行任务都触发执行后,所述子任务节点被正常触发执行。
[0023]进一步地,所述根据所述子任务链路图,构建每个子任务的执行链路,包括:
[0024]根据子任务有向无环图,得到每个子任务的执行链路,并提取每个子任务的树状依赖关系,其中,树状依赖关系中的每个子任务节点存放子任务的标识符,所述标识符包括元信息中的能力名称和能力版本;
[0025]将每个子任务的执行链路封装为二进制数据,并将所述二进制数据存储在消息队列中,以在触发执行时调用。
[0026]可选地,所述根据所述任务链路,构建分布式异步消息队列的可执行序列对象,包括:
[0027]基于执行链路,构造所述执行链路对应的子任务类;
[0028]确定执行链路中最初触发执行的最初子任务节点,并配置所述最初子任务节点的最初节点参数;
[0029]确定执行链路中最终触发执行的最终子任务节点,并动态传入所述最终子任务节点的最终节点参数;
[0030]通过所述子任务类构造子任务对象,并基于所述子任务对象、最初子任务节点、最初节点参数、最终子任务节点和最终节点参数,构建分布式异步消息队列celery的可执行序列对象。
[0031]可选地,在触发执行子任务序列之后,所述方法还包括:
[0032]确定触发执行的触发方式,所述触发方式包括同步触发和异步触发;
[0033]如果触发方式是同步触发,则阻塞等待结果返回,收到结果后,响应至调用端;
[0034]如果触发方式是异步触发,则将触发记录绑定到唯一的uuid,将所述触发执行订阅到消息队列对应的频道,不阻塞触发执行;当执行链路中的所有子任务节点全部执行完成后,订阅的频道接收发行信息,发送回调请求,将触发执行的结果发送到调用端。
[0035]本专利技术的第二方面提供了一种子任务序列的触发执行系统,包括:
[0036]编排单元,用于将每个文件处理能力独立封装为子任务,基于所有子任务编排任务链路;
[0037]构建单元,用于根据所述任务链路,构建分布式异步消息队列的可执行序列对象;
[0038]触发执行单元,用于执行所述可执行序列对象,触发执行子任务序列。
[0039]本专利技术的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面任意一项提供的子任务序列的触发执行方法。
[0040]本专利技术的第四方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一
个处理器执行第一方面任意一项提供的子任务序列的触发执行方法。
[0041]在本专利技术实施例提供的子任务序列的触发执行方法中,将每个文件处理能力独立封装为子任务,基于所有子任务编排任务链路;通过将所有子任务编排任务链路,可以得到子任务的在完整任务链路中的具体位置和上下游的子任务,避免子任务丢失;
[0042]根据所述任务链路,构建分布式异步消息队列的可执行序列对象;通过分布式异步消息队列可以实现子任务的异步处理,处理消息队列的调度执行,高效地进行文件处理;执行所述可执行序列对象,触发执行子任务序列。本专利技术实施例可以编排任务链路,并触发执行子任务,通过任务链路使得子任务在数据较多时依然可以准确定位,解决了相关技术中文件任务量或使用的文件处理能力过多导致文件处理过程中发生混乱,出现任务丢失的问题。
附图说明
[0043]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]图1为本专利技术实施例提供的子任务序列的触发执行方法流程示意图;
[0045]图2为本专利技术实施例提供的本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种子任务序列的触发执行方法,其特征在于,包括:将每个文件处理能力独立封装为子任务,基于所有子任务编排任务链路;根据所述任务链路,构建分布式异步消息队列的可执行序列对象;执行所述可执行序列对象,触发执行子任务序列。2.根据权利要求1所述的方法,其特征在于,所述基于所有子任务编排任务链路,包括按照第一周期重复执行下述步骤:基于所有子任务,获取各个子任务对应的子任务数据;根据所述子任务数据,按照第二周期构建子任务链路图;根据所述子任务链路图,构建每个子任务的执行链路。3.根据权利要求2所述的方法,其特征在于,所述基于所有子任务,获取各个子任务对应的子任务数据,包括:每个执行端启动时,按照第三周期向消息队列发送所述执行端承载的所有子任务对应的心跳数据;消息队列按照第四周期向指挥端同步所述心跳数据;其中,心跳数据包括每个执行端承载的所有子任务的元信息,所述元信息包括能力名称、能力版本、前置依赖和支持文件类型。4.根据权利要求2所述的方法,其特征在于,所述根据所述子任务数据,按照第二周期构建子任务链路图,包括:指挥端根据接收的心跳数据构建子任务有向无环图;基于所述子任务有向无环图,提取每个子任务的最短执行链路;从根节点向子任务节点触发执行所述最短执行链路;如果所述最短执行链路包含并行链路,则在子任务节点的所有前置并行任务都触发执行后,所述子任务节点被正常触发执行。5.根据权利要求2所述的方法,其特征在于,所述根据所述子任务链路图,构建每个子任务的执行链路,包括:根据子任务有向无环图,得到每个子任务的执行链路,并提取每个子任务的树状依赖关系,其中,树状依赖关系中的每个子任务节点存放子任务的标识符,所述标识符包括元信息中的能力名称和能力版本;将每个子任务的执行链路封装为二进制数据,并将所述二进制数据存储在消息队列中,以在触发执行时调用。6.根据权利要求1所述的方法,其特征在于,所述根据所述任务链路,构建分布式异步消息队列的可执...

【专利技术属性】
技术研发人员:范凌王喆李佳楠赵珂飞
申请(专利权)人:特赞上海信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1