CN115098255A - 分布式文件异步处理服务的设计方法、***及电子设备 - Google Patents
分布式文件异步处理服务的设计方法、***及电子设备 Download PDFInfo
- Publication number
- CN115098255A CN115098255A CN202210689844.6A CN202210689844A CN115098255A CN 115098255 A CN115098255 A CN 115098255A CN 202210689844 A CN202210689844 A CN 202210689844A CN 115098255 A CN115098255 A CN 115098255A
- Authority
- CN
- China
- Prior art keywords
- subtask
- execution
- subtasks
- command
- sequence object
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式文件异步处理服务的设计方法、***及电子设备,其中方法包括:指挥端接收调用端发起的请求,根据请求确定子任务;指挥端基于子任务编排任务链路,并根据任务链路构建分布式异步消息队列的可执行序列对象;指挥端指挥执行端触发执行可执行序列对象;执行端根据可执行序列对象执行所述子任务,得到子任务产物,并将子任务产物通过指挥端反馈至调用端。本发明通过子任务实现文件处理能力,任务链路中的多个子任务可以提供多种文件处理能力,针对不同的文件处理需求执行对应的子任务,达到提供各种不同的文件处理能力的效果;并且,通过任务链路和分布式异步消息队列,可以处理大量的文件处理任务量。
Description
技术领域
本发明涉及数据资产管理技术领域,具体涉及一种分布式文件异步处理服务的设计方法、***及电子设备。
背景技术
在数据资产管理(Data Asset Management,简称为DAM)业务场景下,对用户的视频、图片等多媒体文件进行离线处理是一个DAM工具需要具备的能力。随着业务量的增长,需要被处理的文件数量较多,每日需要处理的各类文件处理任务量级在10w级别;并且,对视频、图片等文件有各种不同的处理需求,例如视频OCR识别、图片智能打标等,需要各种不同的文件处理能力来满足这些需求。
然而,传统的DAM业务场景在进行文件处理任务时,不能处理较大的文件数据量,无法针对多种文件处理需求提供各种不同的文件处理能力。
针对相关技术中无法处理较大的文件数据量、无法提供各种不同的文件处理能力的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种分布式文件异步处理服务的设计方法及***,以解决相关技术中无法处理较大的文件数据量、无法提供各种不同的文件处理能力的问题。
为了实现上述目的,本发明的第一方面提供了一种分布式文件异步处理服务的设计方法,包括:
指挥端接收调用端发起的请求,根据所述请求确定子任务;
指挥端基于所述子任务编排任务链路,并根据所述任务链路构建分布式异步消息队列的可执行序列对象;
指挥端指挥执行端触发执行所述可执行序列对象;
执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端。
可选地,所述指挥端接收调用端发起的请求,根据所述请求确定子任务,包括:
指挥端接收调用端发起的请求,根据所述请求确定文件处理能力;
预先将每个文件处理能力独立封装为子任务;
确定所述请求对应的子任务。
可选地,所述指挥端基于所述子任务编排任务链路,并根据所述任务链路构建分布式异步消息队列的可执行序列对象,包括:
指挥端基于所有子任务,获取各个子任务对应的子任务数据;
根据所述子任务数据,定期构建子任务链路图;
根据所述子任务链路图,构建每个子任务的执行链路;
基于所述执行链路,构建分布式异步消息队列的可执行序列对象。
进一步地,所述基于所述执行链路,构建分布式异步消息队列的可执行序列对象,包括:
基于执行链路,构造所述执行链路对应的子任务类;
确定执行链路中最初触发执行的最初子任务节点,并配置所述最初子任务节点的最初节点参数;
确定执行链路中最终触发执行的最终子任务节点,并动态传入所述最终子任务节点的最终节点参数;
通过所述子任务类构造子任务对象,并基于所述子任务对象、最初子任务节点、最初节点参数、最终子任务节点和最终节点参数,构建分布式异步消息队列celery的可执行序列对象。
可选地,所述指挥端指挥执行端触发执行所述可执行序列对象,包括:
指挥端指挥执行端执行分布式异步消息队列celery的可执行序列对象;
触发执行端执行指定的子任务。
可选地,在所述执行端根据所述可执行序列对象执行所述子任务之前,所述方法还包括:
执行端根据开源配置管理中心apollo定期更新配置;
将更新配置后的执行端承载的子任务进行注册,完成执行端初始化;
执行端初始化完成后,向消息队列发送心跳数据,其中所述心跳数据包括执行端承载的子任务的元信息,所述元信息包括:能力名称、能力版本、前置依赖和支持文件类型。
进一步地,所述执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端,包括:
每个子任务根据所述元信息中的能力名称和能力版本,唯一对应一个独享队列;
执行端通过承载的每个子任务的进程,从每个子任务唯一对应的独享队列中取出子任务;
所述执行端串行执行或并行执行所述子任务,得到子任务产物,并将所述子任务产物统一绑定在同一目录下;
将所述子任务产物通过指挥端反馈至调用端。
本发明的第二方面提供了一种分布式文件异步处理服务的设计***,包括:
确定单元,用于指挥端接收调用端发起的请求,根据所述请求确定子任务;
编排单元,用于指挥端基于所述子任务编排任务链路,并根据所述任务链路构建分布式异步消息队列的可执行序列对象;
触发执行单元,用于指挥端指挥执行端触发执行所述可执行序列对象;
执行单元,用于执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端。
本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面任意一项提供的分布式文件异步处理服务的设计方法。
本发明的第四方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项提供的分布式文件异步处理服务的设计方法。
在本发明实施例提供的分布式文件异步处理服务的设计方法中,指挥端接收调用端发起的请求,根据所述请求确定子任务;通过子任务实现文件处理能力;
指挥端基于所述子任务编排任务链路,并根据所述任务链路构建分布式异步消息队列的可执行序列对象;任务链路中的多个子任务可以提供多种文件处理能力;并且,通过任务链路和分布式异步消息队列,可以处理大量的文件处理任务量;
指挥端指挥执行端触发执行所述可执行序列对象;执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端。针对不同的文件处理需求执行对应的子任务,达到提供各种不同的文件处理能力的效果,解决了相关技术中无法处理较大的文件数据量、无法提供各种不同的文件处理能力的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分布式文件异步处理服务的设计***的架构图;
图2为本发明实施例提供的分布式文件异步处理服务的设计方法流程示意图;
图3为本发明实施例提供的串行任务时序图;
图4为本发明实施例提供的并行任务时序图;
图5为本发明实施例提供的分布式文件异步处理服务的设计***框图;
图6为本发明实施例提供的电子设备框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的***、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个***、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
在数据资产管理(Data Asset Management,简称为DAM)业务场景下,对用户的视频、图片等多媒体文件进行离线处理是一个DAM工具需要具备的能力。随着业务量的增长,需要被处理的文件数量较多,每日需要处理的各类文件处理任务量级在10w级别;并且,对视频、图片等文件有各种不同的处理需求,例如视频OCR识别、图片智能打标等,需要各种不同的文件处理能力来满足这些需求。
然而,传统的DAM业务场景在进行文件处理任务时,不能处理较大的文件数据量,无法针对多种文件处理需求提供各种不同的文件处理能力。
为了解决上述问题,本发明实施例提供了一种分布式文件异步处理服务的设计***,架构图如图1所示,其中,调用方即用户,作为调用端,conductor为指挥端,player为执行端,该***中包含一个指挥端和多个执行端,每个执行端承载并执行一个或多个子任务subtask;
调用端向指挥端发起文件处理请求,指挥端指挥执行端进行文件处理服务,执行端执行文件处理请求对应的子任务,得到子任务产物,并将该子任务产物通过指挥端反馈至调用端,完成文件处理服务;
另外,在文件处理服务过程中,采用监控器monitor进行状态监控、性能监控,当监控到异常时进行异常报警;
其中,FastAPI是用于提供外部接口的python后端框架;common lib用于封装公共模块;mongo是非关系型数据库,用于存储处理数据;redis是基于内存的非关系型数据库,用于进行消息通信,例如,通过redis来实现指挥端和执行端之间的消息通信;MessageBroker是消息中间件,用于进行队列消息通信;File system是底层文件***,用于存放子任务产物。
本发明实施例提供的分布式文件异步处理服务的设计***,可以处理大量文件,满足每日处理各类文件处理任务量级在10w级别的需求;可以处理多样化的文件类型,包括mp4、jpeg、png、psd、mpeg、heic、gif等;通过执行的多种子任务,支持多种文件处理能力,包括视频抽帧、视频人脸识别、视频OCR识别、视频拆条、图片缩略图提取、图片主色信息提取、图片智能打标等;本发明实施例提供的设计***是高可用的,可确保在给定时间段内实现高水平的操作性能,最大限度地减少停机时间和服务中断;***支持多个文件处理任务并发执行;***合理利用资源,快速地完成文件处理任务。
本发明实施例还提供了一种分布式文件异步处理服务的设计方法,如图2所示,该方法包括如下的步骤S101至步骤S104:
步骤S101:指挥端接收调用端发起的请求,根据所述请求确定子任务;
其中,每个子任务都具有缓存标识,由租户id、文件sha1、任务名称、版本号、参数hash组成,其中,sha1为Secure Hash Algorithm 1,安全散列算法1,属于数据加密算法;中间节点产物可复用,subtask的配置中也有缓存控制开关,可灵活配置;
并且,每个子任务都支持横纵向扩容,横向扩容:支持同时起多个执行端实例;纵向扩容:每个子任务都支持起多个进程,默认是动态纵向扩容,会随着任务量而动态开辟进程数,最少2个进程最多10个进程,以使执行的任务量与占用的资源相匹配,避免执行效率较低或浪费资源。
具体的,所述步骤S101包括:
指挥端接收调用端发起的请求,根据所述请求确定文件处理能力;文件处理能力包括视频抽帧、视频人脸识别、视频OCR识别、视频拆条、图片缩略图提取、图片主色信息提取、图片智能打标等;
预先将每个文件处理能力独立封装为子任务;通过预先将各个文件处理能力独立封装,可以使子任务之间相互独立,处理文件时互不干扰,避免大数据量的文件在处理过程中产生混乱。
确定所述请求对应的子任务。针对请求对应的子任务,执行该子任务,以进行文件处理服务;每一次执行子任务都生成一个唯一的全局play_id来标识当前执行记录,整条链路可以通过全局play_id将执行记录串联起来,方便排查上下游问题。
步骤S102:指挥端基于所述子任务编排任务链路,并根据所述任务链路构建分布式异步消息队列的可执行序列对象;
具体的,所述步骤S102包括:
指挥端基于所有子任务,获取各个子任务对应的子任务数据;指挥端经由消息队列redis,接收执行端发送的子任务对应的心跳数据,心跳数据包括每个执行端承载的所有子任务的元信息;
所述元信息包括能力名称、能力版本、前置依赖和支持文件类型;其中,当子任务对应的文件处理效果产生变化时,升级版本号,更新能力版本;每个子任务的前置依赖可以有一个或多个,该子任务的所有前置依赖都触发执行后,该子任务才能被正常触发执行。
根据所述子任务数据,定期构建子任务链路图;通过所有子任务的前置依赖,可以构建完整的子任务链路图,并得到子任务的在完整任务链路中的具***置和上下游的子任务,避免子任务丢失;并且,由于子任务数据在变动,因此每隔5秒构建子任务链路图。
根据所述子任务链路图,构建每个子任务的执行链路;根据子任务链路图,提取每个子任务的树状依赖关系,基于该树状依赖关系可以构建每个子任务的执行链路。
基于所述执行链路,构建分布式异步消息队列的可执行序列对象。
进一步的,所述基于所述执行链路,构建分布式异步消息队列的可执行序列对象,包括:
基于执行链路,构造所述执行链路对应的子任务类;
确定执行链路中最初触发执行的最初子任务节点,并配置所述最初子任务节点的最初节点参数;最初子任务节点,即为第一个要被执行的子任务,通常是fetch节点;
确定执行链路中最终触发执行的最终子任务节点,并动态传入所述最终子任务节点的最终节点参数;最终子任务节点,即为最终要被执行的目标子任务;支持动态传参,把参数注入进去;
通过所述子任务类构造子任务对象,并基于所述子任务对象、最初子任务节点、最初节点参数、最终子任务节点和最终节点参数,构建分布式异步消息队列celery的可执行序列对象。其中,分布式异步消息任务队列celery基于python开发,通过celery对消息队列进行操作,可以处理消息队列的调度执行,实现任务的异步处理。
步骤S103:指挥端指挥执行端触发执行所述可执行序列对象;
具体的,所述步骤S103包括:
指挥端指挥执行端执行分布式异步消息队列celery的可执行序列对象;
触发执行端执行指定的子任务。
指挥端指挥执行端执行分布式异步消息队列celery的可执行序列对象,触发执行端执行子任务序列。
步骤S104:执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端。
一个执行端承载一个或多个文件处理能力。将每个文件处理能力独立封装为子任务后,一个执行端承载一个或多个子任务;由于考虑到有很多文件处理能力计算开销较小,单独开一个容器或单独分配一个执行端会造成资源浪费,所以支持一个执行端同时承载多个文件处理能力。
具体的,在所述步骤S104中的执行端根据所述可执行序列对象执行所述子任务之前,所述方法还包括:
执行端根据开源配置管理中心apollo定期更新配置;开源配置管理中心apollo的配置是支持热更新的,执行端会在后台定期获取apollo上最新配置,当产生变更时,更新配置。
将更新配置后的执行端承载的子任务进行注册,完成执行端初始化;
执行端初始化完成后,向消息队列发送心跳数据,其中所述心跳数据包括执行端承载的子任务的元信息,所述元信息包括:能力名称、能力版本、前置依赖和支持文件类型。执行端不开放任何http/rpc接口,只通过消息队列redis进行消息通信。
进一步的,所述执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端,包括:
每个子任务根据所述元信息中的能力名称和能力版本,唯一对应一个独享队列;
执行端通过承载的每个子任务的进程,从每个子任务唯一对应的独享队列中取出子任务;通过进程处理队列中的子任务,例如,假设队列里积压了10个子任务,进程的数量为2,那么执行端会每次通过进程同时处理其中的2个子任务;
所述执行端串行执行或并行执行所述子任务,得到子任务产物,并将所述子任务产物统一绑定在同一目录下;
将所述子任务产物通过指挥端反馈至调用端。
其中,串行任务是指,从根节点到目标子任务节点,依次执行子任务,本发明实施例提供的串行任务时序图如图3所示;并行任务是指,在同一个文件处理任务中,有多个可同时执行的子任务,这些子任务没有先后依赖关系,可以同时执行,即并行执行,本发明实施例提供的串行任务时序图如图4所示。
从以上的描述中,可以看出,本发明实现了如下技术效果:
本发明实施例提供的设计方法,通过子任务实现文件处理能力,任务链路中的多个子任务可以提供多种文件处理能力,针对不同的文件处理需求执行对应的子任务,达到提供各种不同的文件处理能力的效果;并且,通过任务链路和分布式异步消息队列,可以处理大量的文件处理任务量;
本发明实施例提供的设计***是高可用的,可确保在给定时间段内实现高水平的操作性能,最大限度地减少停机时间和服务中断;***支持多个文件处理任务并发执行;***合理利用资源,快速地完成文件处理任务。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种用于实施上述分布式文件异步处理服务的设计方法的分布式文件异步处理服务的设计***,如图5所示,该***包括:
确定单元51,用于指挥端接收调用端发起的请求,根据所述请求确定子任务;
编排单元52,用于指挥端基于所述子任务编排任务链路,并根据所述任务链路构建分布式异步消息队列的可执行序列对象;
触发执行单元53,用于指挥端指挥执行端触发执行所述可执行序列对象;
执行单元54,用于执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端。
本发明实施例还提供了一种电子设备,如图6所示,该电子设备包括一个或多个处理器61以及存储器62,图6中以一个处理器61为例。
该控制器还可以包括:输入装置63和输出装置64。
处理器61、存储器62、输入装置63和输出装置64可以通过总线或者其他方式连接,图6中以通过总线连接为例。
处理器61可以为中央处理器(Central Processing Unit,简称为CPU),处理器61还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,简称为DSP)、专用集成电路(Application Specific Integrated Circuit,简称为ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称为FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合,通用处理器可以是微处理器或者任何常规的处理器。
存储器62作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的控制方法对应的程序指令/模块。处理器61通过运行存储在存储器62中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的分布式文件异步处理服务的设计方法。
存储器62可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器62可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器62可选包括相对于处理器61远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置63可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置64可包括显示屏等显示设备。
一个或者多个模块存储在存储器62中,当被一个或者多个处理器61执行时,执行如图2所示的方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,简称为ROM)、随机存储记忆体(Random AccessMemory,简称为RAM)、快闪存储器(Flash Memory,简称为FM)、硬盘(Hard Disk Drive,简称为HDD)或固态硬盘(Solid-State Drive,简称为SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种分布式文件异步处理服务的设计方法,其特征在于,包括:
指挥端接收调用端发起的请求,根据所述请求确定子任务;
指挥端基于所述子任务编排任务链路,并根据所述任务链路构建分布式异步消息队列的可执行序列对象;
指挥端指挥执行端触发执行所述可执行序列对象;
执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端。
2.根据权利要求1所述的方法,其特征在于,所述指挥端接收调用端发起的请求,根据所述请求确定子任务,包括:
指挥端接收调用端发起的请求,根据所述请求确定文件处理能力;
预先将每个文件处理能力独立封装为子任务;
确定所述请求对应的子任务。
3.根据权利要求1所述的方法,其特征在于,所述指挥端基于所述子任务编排任务链路,并根据所述任务链路构建分布式异步消息队列的可执行序列对象,包括:
指挥端基于所有子任务,获取各个子任务对应的子任务数据;
根据所述子任务数据,定期构建子任务链路图;
根据所述子任务链路图,构建每个子任务的执行链路;
基于所述执行链路,构建分布式异步消息队列的可执行序列对象。
4.根据权利要求3所述的方法,其特征在于,所述基于所述执行链路,构建分布式异步消息队列的可执行序列对象,包括:
基于执行链路,构造所述执行链路对应的子任务类;
确定执行链路中最初触发执行的最初子任务节点,并配置所述最初子任务节点的最初节点参数;
确定执行链路中最终触发执行的最终子任务节点,并动态传入所述最终子任务节点的最终节点参数;
通过所述子任务类构造子任务对象,并基于所述子任务对象、最初子任务节点、最初节点参数、最终子任务节点和最终节点参数,构建分布式异步消息队列celery的可执行序列对象。
5.根据权利要求1所述的方法,其特征在于,所述指挥端指挥执行端触发执行所述可执行序列对象,包括:
指挥端指挥执行端执行分布式异步消息队列celery的可执行序列对象;
触发执行端执行指定的子任务。
6.根据权利要求1所述的方法,其特征在于,在所述执行端根据所述可执行序列对象执行所述子任务之前,所述方法还包括:
执行端根据开源配置管理中心apollo定期更新配置;
将更新配置后的执行端承载的子任务进行注册,完成执行端初始化;
执行端初始化完成后,向消息队列发送心跳数据,其中所述心跳数据包括执行端承载的子任务的元信息,所述元信息包括:能力名称、能力版本、前置依赖和支持文件类型。
7.根据权利要求6所述的方法,其特征在于,所述执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端,包括:
每个子任务根据所述元信息中的能力名称和能力版本,唯一对应一个独享队列;
执行端通过承载的每个子任务的进程,从每个子任务唯一对应的独享队列中取出子任务;
所述执行端串行执行或并行执行所述子任务,得到子任务产物,并将所述子任务产物统一绑定在同一目录下;
将所述子任务产物通过指挥端反馈至调用端。
8.一种分布式文件异步处理服务的设计***,其特征在于,包括:
确定单元,用于指挥端接收调用端发起的请求,根据所述请求确定子任务;
编排单元,用于指挥端基于所述子任务编排任务链路,并根据所述任务链路构建分布式异步消息队列的可执行序列对象;
触发执行单元,用于指挥端指挥执行端触发执行所述可执行序列对象;
执行单元,用于执行端根据所述可执行序列对象执行所述子任务,得到子任务产物,并将所述子任务产物通过指挥端反馈至调用端。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7任意一项所述的分布式文件异步处理服务的设计方法。
10.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-7任意一项所述的分布式文件异步处理服务的设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210689844.6A CN115098255A (zh) | 2022-06-17 | 2022-06-17 | 分布式文件异步处理服务的设计方法、***及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210689844.6A CN115098255A (zh) | 2022-06-17 | 2022-06-17 | 分布式文件异步处理服务的设计方法、***及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115098255A true CN115098255A (zh) | 2022-09-23 |
Family
ID=83290914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210689844.6A Pending CN115098255A (zh) | 2022-06-17 | 2022-06-17 | 分布式文件异步处理服务的设计方法、***及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098255A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521400A (zh) * | 2023-07-04 | 2023-08-01 | 京东科技信息技术有限公司 | 文章信息处理方法、装置、存储介质及电子设备 |
-
2022
- 2022-06-17 CN CN202210689844.6A patent/CN115098255A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521400A (zh) * | 2023-07-04 | 2023-08-01 | 京东科技信息技术有限公司 | 文章信息处理方法、装置、存储介质及电子设备 |
CN116521400B (zh) * | 2023-07-04 | 2023-11-03 | 京东科技信息技术有限公司 | 文章信息处理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019240B (zh) | 一种业务数据交互方法、装置及*** | |
CN110413346B (zh) | 一种参数更新方法及装置 | |
US9843528B2 (en) | Client selection in a distributed strict queue | |
US9571414B2 (en) | Multi-tiered processing using a distributed strict queue | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
US10305817B1 (en) | Provisioning system and method for a distributed computing environment using a map reduce process | |
CN106331783B (zh) | 一种资源分配方法、装置和智能电视*** | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、***、装置和存储介质 | |
CN115098255A (zh) | 分布式文件异步处理服务的设计方法、***及电子设备 | |
CN109388501B (zh) | 基于人脸识别请求的通信匹配方法、装置、设备及介质 | |
US20170171307A1 (en) | Method and electronic apparatus for processing picture | |
CN111338775B (zh) | 一种执行定时任务的方法及设备 | |
CN112600842A (zh) | 集群shell方法、装置、电子设备及计算机可读存储介质 | |
CN115098254A (zh) | 子任务序列的触发执行方法、***及电子设备 | |
CN115061796A (zh) | 子任务之间调用的执行方法、***及电子设备 | |
CN111190731A (zh) | 基于权重的集群任务调度*** | |
CN112019689A (zh) | 来电秀业务处理***及方法 | |
US11606422B2 (en) | Server for controlling data transmission through data pipeline and operation method thereof | |
CN106331774A (zh) | 设备连接的方法和装置、以及智能电视*** | |
CN112667393B (zh) | 分布式任务计算调度框架搭建的方法、装置及计算机设备 | |
CN114969199A (zh) | 遥感数据的处理方法、装置、***以及存储介质 | |
CN116069493A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
US10419368B1 (en) | Dynamic scaling of computing message architecture | |
CN112988806A (zh) | 一种数据处理的方法及装置 | |
CN115098253A (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 |