基于分布式系统的任务执行方法及系统的制作方法

文档序号:8282143阅读:332来源:国知局
基于分布式系统的任务执行方法及系统的制作方法
【技术领域】
[0001]本发明涉及广播电视播出系统技术领域,具体涉及一种基于分布式系统的任务执行方法和系统。
【背景技术】
[0002]广播电视台的设备系统目前大部分为分布式计算机系统,其通常以执行相应的任务来完成某一项工作。工作要求的内容不同,任务不同,其占用的资源也不同。例如素材的迀移任务主要占用磁盘I/o和网络的1/0,转码和文件技审任务主要占用CPU、内存、磁盘I/0、网络I/O资源。当系统中的某一个用于执行任务的计算机(以下称为执行端)在执行一项任务时,如果该任务耗时很长,则其长时间处于工作状态,而其它的执行端却处于闲置状态。这就产生了两个问题:
[0003]其一,该任务由单一机器来执行,执行时间过长,不能满足时限要求。例如技审任务。当有紧急播出某个视频的需要时,要求对该视频文件能够快速完成技审。技审的目的是检查内容是否适合播放,例如内容是否完整,画面是否清晰,是否有技术上的如马塞克、“黑场”(全屏幕黑色)、“彩场”(全屏幕彩色),“彩条”(彩色条状)、静帧(几帧画面完全一致)、雪花场(雪花屏幕)、静音等问题。目前的处理方式通常是将其作为任务发送给一个执行端,由其来完成技审。而在紧急状态下,希望能够在最短时间内完成技审,但是这种单机执行的方式无法满足要求。
[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]模块检测子单元,用于检测输入的各个任务模块,确定是否有切分的任务模块;和
[0031]封装子单元,用于将可切分的任务模块封装成为一个封装模块。
[0032]本发明充分利用了分布式系统的优势,在任务被某个执行端执行的过程中,如果有其他的执行端空闲出来,通过切分任务模块,将不同的切片任务分配给这些空闲的执行端,不但缩短了任务的执行时间,而且充分利用了现有资源。另外,本发明中的任务分为多个任务模块,在形式上比较清晰,很好地体现了业务上的流程,并且在执行该任务时,基本限定了任务的主要执行端和执行顺序。在某些情况下,上一个任务模块的某些执行结果,可以直接作为下一个模块的运行参数,减少了对管理端的依赖。
【附图说明】
[0033]通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
[0034]图1为本发明所述基于分布式系统的任务执行系统的原理结构框图;
[0035]图2为本发明所述基于分布式系统的任务执行系统中管理端的具体结构示意图;
[0036]图3为本发明所述基于分布式系统的任务执行系统中执行端的具体结构示意图;
[0037]图4为本发明所述基于分布式系统的任务执行方法的流程示意图;
[0038]图5为管理端接收到的任务结构示意图;
[0039]图6为模块封装示意图;
[0040]图7为管理端发出的任务结构示意图;
[0041]图8为本发明所述管理端发出任务的流程图;
[0042]图9为执行端接收到任务后执行任务的流程图;
[0043]图10为切片任务执行流程图。
【具体实施方式】
[0044]如图1所示,为本发明基于分布式系统的任务执行系统的原理结构框图。本发明所述系统包括一个管理端I和多个执行端,管理端I与多个执行端为分布式连接。其中,所述管理端I和执行端可以为服务器、工作站或一台计算机。所述管理端I在该分布式系统中实现对分布式系统内资源的动态获取,例如各个执行端计算机的CPU占用率,内存占用率,网络1/0,磁盘I/O以及对任务的分配等。执行端负责执行具体的任务模块。当任务到达管理端后,管理端会根据当前各个执行端的负载情况确定一合适的执行端并将任务分配到具体的执行端。
[0045]如图4所示,为本发明所述基于分布式系统的任务执行方法的流程示意图。在本发明中,管理端接收外部输入的任务,该任务包括多个任务模块,每一个任务模块具有相应的任务描述。在该任务中,对于可以进行切分的任务模块,已将其封装成特定的任务模块,通过该特定模块的任务描述,可知这是一个封装了其他任务模块的模块。管理端根据各个执行端的负载情况,选择合适的执行端(为以示区分,将用来执行该任务的执行端命名为第一执行端)来执行该任务。该第一执行端接收到该任务后,对该任务进行拆分,拆分出各个任务模块,然后按既定的顺序逐一执行各个任务模块。当执行到该特定模块时,对该特定模块进行拆封得到任务模块的原信息,并将切分请求及该原信息发送给管理端,管理端根据可用执行端的负载情况,确定N个第二执行端,然后对该任务模块进行切分,切分为N+1个切片,并分别发送给第一执行端及N个第二执行端来执行各个切片任务,各个执行端向管理端报告进程及相应的执行结果。第一执行端通过向管理端发送查询请求获得各个执行端的执行进度,当所有执行端全部完成时,由第一执行端合并该任务模块的结果,至此,第一执行端执行完了该可切分的任务模块,接下来,完成剩余任务模块。当所有任务模块完成,则完成该任务。
[0046]本发明将一个任务分
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1