DC4C代码阅读(2)——概述

来源:互联网 发布:淘宝改价新规则 编辑:程序博客网 时间:2024/04/30 23:56
dc4c分为三个部分:
1、注册节点——register node
    一个注册节点就是一个守护进程对(父进程负责监控子进程的状态,子进程负责提供服务)。
    (1)注册节点负责接受计算节点注册、状态变更、注销;
    (2)接受用户节点查询空闲计算节点。
    (3)接受telnet连接在线查询和管理。
    (4)可以有多个计算节点
2、计算节点——computing node
    (1)向一个注册节点注册成为一个注册节点
    (2)接受用户节点分派任务并反馈执行结果
    (3)随时向注册节点报告状态
    (4)计算节点同样也是一个守护进程对
3、用户节点——user node
    (1)调用api,向注册节点查询当前空闲的计算节点
    (2)分派任务给计算节点并监督执行

另外,dc4c实现了普通的批量任务(单任务、批量任务、多批量任务)以及DAG任务流。最多支持8个注册节点和6万个计算节点。
用户节点派分任务的流程:
1、派分单任务
    (1)DC4CInitEnv – 初始化任务环境
    (2)DC4CDoTask – 分派单任务,并等待结束
    (3)DC4CCleanEnv - 清理任务环境
2、派分批量任务
    (1)DC4CInitEnv – 初始化任务环境
    (2)构造 struct Dc4cBatchTask 的tasks_array[]数组,填充任务集合
    (3)DC4CDoBatchTasks – 分派批量任务,并等待结束
    (4)DC4CCleanEnv – 清理任务环境
3、派分多批量任务
    (1)DC4CInitEnv – 初始化任务环境
    (2)构造每个任务环境中的struct Dc4cBatchTask tasks_array[]数组,填充任务集合,并开始分派批量任务
    (3)DC4CDoMultiBatchTasks- 开始多批量任务(当空闲节点少于任务集合时分批次分派任务)
    (4)DC4CCleanEnv - 清理任务环境
4、派分DAG任务
    任务调度引擎封装了原生的同步发起多批量任务函数接口,提供了一批 API 函数,用于读入外部配置文件或数据库中的配置,按序执行线性、树形等多批量 任务
0 0
原创粉丝点击