本发明涉及计算机及自动控制技术领域,具体来说,涉及一种对机顶盒终端进行自动测试的分布式任务调度系统及任务调度方法。
背景技术:
针对相关技术中不能够实现对直播卫星机顶盒终端进行自动测试的问题,目前尚未提出有效的解决方案。
技术实现要素:
针对相关技术中不能够实现对直播卫星机顶盒终端进行自动测试的问题,本发明提出一种分布式任务调度系统及任务调度方法,能够实现对直播卫星机顶盒终端的测试任务配置、发布的功能。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种分布式任务调度系统,包括:调度模块以及与调度模块通信连接的多个任务执行模块;调度模块用于获取任务请求,并根据任务请求向相应的任务执行模块分发任务以完成任务请求。
根据本发明的一个实施例,任务的数量为多个;其中,多个任务的处理时序均与任务请求相符合。
根据本发明的一个实施例,调度模块根据任务请求对任务请求进行封装,还用于将封装后的任务请求分解为多个任务。
根据本发明的一个实施例,还包括:消息中间件,通信连接于调度模块和多个任务执行模块之间;其中,调度模块通过消息中间件将多个任务分发至相应的任务执行模块,且相应的任务执行模块通过消息中间件向调度模块返回任务执行结果。
根据本发明的一个实施例,还包括监测模块,用于获取多个任务执行模块中各个任务执行模块的任务状态。
根据本发明的一个实施例,监测模块还用于根据任务状态注销任务模块或创建任务模块。
根据本发明的一个实施例,还包括:多个任务请求模块,与调度模块均通信连接,用于根据需求生成任务请求;其中,调度模块还用于将多个任务执行模块的任务执行结果返回至相应的任务请求模块,以使任务请求模块对返回的任务执行结果进行分析。
根据本发明的一个实施例,还包括:存储模块,通信连接于任务请求模块和多个任务执行模块;其中,多个任务执行模块中各个任务执行模块将任务结果存至存储模块;以及任务请求模块通过存储模块获取任务结果。
根据本发明的另一方面,提供了一种任务调度方法,包括:获取任务请求;根据任务请求向相应的任务执行模块分发任务以完成任务请求。
根据本发明的一个实施例,根据任务请求向相应的任务执行模块分发任务,包括:根据任务请求对任务请求进行封装;以及将封装后的任务请求分解为多个任务。
本发明通过任务请求模块处理机顶盒测试任务管理的任务请求,调度模块根据任务请求向相应的任务执行模块分发任务以完成任务请求,达到自动下发测试任务、并自动控制机顶盒以及自动分析判断测试结果的功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的分布式任务调度系统的框图;
图2是根据本发明实施例的分布式任务调度系统的业务流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明概念的示例性的实施例可以许多不同的形式实施,并且不应该被解释为受限于此处所述的实施例;更确切地说,提供这些实施例是以便本发明将充分和完整,并且将示例性的实施例的概念充分传达给本领域的普通技术人员。在附图中,相同的参考标记指代相同的元件,并且因此它们的描述将会被省略。
根据本发明的实施例,提供了一种分布式任务调度系统。
根据本发明实施例的分布式任务调度系统包括:调度模块20、与调度模块20通信连接的多个任务执行模块30、以及与调度模块10均通信连接的多个任务请求模块10;其中调度模块20用于获取任务请求模块10根据需求生成的任务请求,并根据任务请求向相应的任务执行模块30分发任务以完成任务请求。
具体地,用户可通过任务请求模块10进行机顶盒测试任务管理的任务请求,例如该任务请求可包括测试流程和机顶盒按键流程,调度模块20可根据该任务请求向相应的任务执行模块30分发任务以完成任务请求,达到自动下发测试任务并自动控制机顶盒的功能。
进一步地,调度模块20还可以将多个任务执行模块30的任务执行结果返回至相应的任务请求模块10,以使任务请求模块30对返回的任务执行结果进行分析,实现了对各个控制机顶盒的测试结果的进行自动分析和判断的功能。
在一个实施例中,任务的数量为多个;其中多个任务的处理时序均与任务请求相符合。
进一步地,调度模块根据任务请求对任务请求进行封装,还用于将封装后的任务请求分解为多个任务。具体地,调度模块20可在接收到任务请求后根据业务需求,对多个任务请求进行业务层面的封装,之后再将封装后的业务分解成多个任务,分发给相应的任务执行模块30。
任务执行模块30可以在任务完成后将任务结果发送给调度模块20,也可以通过其它方式获取各个任务执行模块30的任务结果。
如图1所示,在一个实施例中,还包括:存储模块,通信连接于任务请求模块10和多个任务执行模块30;其中,多个任务执行模块中各个任务执行模块30将任务结果存至存储模块;以及任务请求模块10可通过存储模块获取任务结果。其中存储模块可以包括数据存储模块61、数据库62和文件存储模块63。具体地,通过存储模块可以采集机顶盒的日志文件,进一步经任务请求模块10或其它分析模块可对日志文件进行自动分析生成测试结果,从而达到对各个机顶盒的测试结果进行自动测试的目的。
如图1所示,在一个实施例中,本发明的分布式任务调度系统还包括:消息中间件40,通信连接于调度模块20和多个任务执行模块30之间;其中,调度模块20通过消息中间件40将多个任务分发至相应的任务执行模块,且相应的任务执行模块30通过消息中间件40向调度模块20返回任务执行结果。还可以通过消息中间件40生成任务目录。
在一个实施例中,还包括监测模块50,用于获取多个任务执行模块中各个任务执行模块的任务状态。进一步地,监测模块还用于根据任务状态注销任务模块或创建任务模块。具体地,监测模块50可用于检测各个任务执行模块30的运行状态和任务队列的堆积情况。当监测模块50检测到任务执行模块30为空闲、且任务队列中没有任务时,监测模块50会自动注销掉该任务执行模块来释放系统资源。当监测模块50检测到所有任务执行模块30在工作,且任务队列中有大量任务堆积时,监测模块50会自动创建任务模块来处理堆积的任务。
如图2所示,是根据本发明实施例的分布式任务调度系统的业务流程图。包括以下步骤:
步骤1,任务请求模块10接到任务后,向调度模块20发送任务请求的消息。
步骤2,调度模块20接收到任务请求的消息后,会根据业务需求进行判断,如果是复合任务(多个任务组成一个业务),就需要等待其他任务请求。然后根据业务需求,形成业务的处理时序以对任务进行并行处理或有序的处理。调度模块20在完成业务封装后,再将业务根据处理时序拆分成多个任务发生到消息中间件40。
步骤3,任务执行模块30从消息中间件40中取出任务后,根据任务内容完成本次任务。
步骤4,任务执行模块30在完成任务后,将任务完成的消息发生给消息中间件40。
步骤5,调度模块20接收到任务执行模块30返回的任务完成的消息后,会根据之前的业务处理时序判断是否完成业务处理。如果完成则进入步骤6,如果还需要进行下一个的任务执行,则返回步骤2。
步骤6,调度模块20将任务完成的消息发送给任务请求模型。
需要说明的是,图1和图2中示出了任务执行模块和任务请求模块的数量均为3个的情况,在实际应用中任务执行模块和任务请求模块的数量均可以根据需求进行设置。
根据本发明的实施例,还提供了一种任务调度方法,包括以下步骤:
步骤s101,获取任务请求;
步骤s103,根据任务请求向相应的任务执行模块分发任务以完成任务请求。
进一步地,步骤s103可以包括:根据任务请求对任务请求进行封装;将封装后的任务请求分解为多个任务。
综上所述,借助于本发明的上述技术方案,用户可通过任务请求模块处理机顶盒测试任务管理的任务请求,调度模块根据任务请求向相应的任务执行模块分发任务以完成任务请求,达到自动下发测试任务、并自动控制机顶盒以及自动分析判断测试结果的功能。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。