调度平台YYSchedule-介绍-任务下发机制

时间:2024-03-23 16:51:54

一、介绍

任务下发机制是调度平台YYSchedule的主*分,本篇博客将分为四个部分进行描述,分别是:

1、介绍“任务”这一概念

2、介绍用户如何向控制节点下发任务

3、介绍任务下发机制

4、介绍任务下发机制的具体队列图

二、任务

    调度平台的任务结构如下图所示:

调度平台YYSchedule-介绍-任务下发机制

    用户下发一个mission为单位的任务,每个mission含有多个job,每个job分别对应一种执行类型(例如查病毒,查漏洞,文件加固),每个job分别对应多个task,实际上每个task也就对应着一个文件file。

    举个例子,用户User拥有50个apk文件,他将这50个文件进行病毒检测,漏洞检测,文件加固,下发1个mission之后,便会有三个job,而每个job便会有50个task。分别对应着这50个apk文件。

 

三、用户调用接口下发任务

用户下发任务,实际上就是以下几步:

   a、用户(User)设置好下发任务(mission)所需要的参数(例如优先级,文件路径等)

   b、taskmanager端使用thrift开启服务,此时taskmanager是服务端,user是客户端

  c、用户(User)远程rpc调用taskmanager的UserCallTaskService.submitMission(mission)方法,此时也会将任务(mission)传递到控制节点taskmanager上

调度平台YYSchedule-介绍-任务下发机制

 

四、任务下发机制

控制节点收到任务mission会在任务下发模块对mission进行处理,其流程大致为,将从用户手里收到的任务,寻找最为合适的任务节点node i,将任务分发到对应的队列distributeTaskQueue i 中,任务节点node i 收到任务后,会调用命令行执行引擎engine,这样就形成了一套收到任务-分配任务-执行任务的流程。

调度平台YYSchedule-介绍-任务下发机制
任务下发机制

 

五、具体队列图

调度平台YYSchedule-介绍-任务下发机制
任务下发机制-队列图