关于homework,你知道哪些?
homework scheduler 系统
①这个 homework scheduler 是什么?
答案很简单,任务调度系统。
②homework的组成有哪些?
- Resource Server --是资源服务器,用来存放未加工的原始数据文件。
- Homework Scheduler --是调度服务器,他负责生成任务,分配任务,检查任务完成结果,维护任务状态。
- Workers --是工作进程,可能是分布式的处于各个系统上的工作处理进程。
③任务配置存储在什么地方?
整个系统的任务配置存储在数据库中,涉及的表结构如下所示。
任务模板主表db_homework.t_work_tpl
字段 | 类型 | 释义 |
id | INT | 任务模板id |
name | VARCHAR(255) | 任务名称模板 |
type | INT | 任务模板类型(1 - 每天例行,2 - 每小时例行) |
work_type | INT | combine子任务的任务处理类型 |
priority | INT | 任务优先级 |
result | VARCHAR(255) | 任务结果存放目录 |
status | INT | 任务模板状态(0 - 有效,1 - 无效) |
timeout | INT | combine任务的超时时间 |
must_after | CHAR(8) | 必须在该点后执行 |
last_gen_time | TIMESTAMP | 上一次生成任务的时间 |
begin_time | TIMESTAMP | 该类任务起始的时间 |
log_time | TIMESTAMP | 录入时间 |
子任务模板表db_homework.t_task_tpl
字段 | 类型 | 释义 |
id | INT | 子任务模板id |
type | INT | 子任务类型 |
work_tpl_id | INT | 对应主任务模板id |
resource | VARCHAR(255) | 任务资源对应路径模板 |
status | INT | 子任务模板状态(0 - 有效,1 - 无效) |
timeout | INT | 子任务超时时间(单位:秒) |
log_time | TIMESTAMP | 录入时间 |
任务主表db_homework.t_work
字段 | 类型 | 释义 |
id | INT | 任务id |
name | VARCHAR(255) | 任务名称 |
type | INT | combine子任务的任务类型 |
work_tpl_id | INT | 对应主任务模板的id |
priority | INT | 任务优先级 |
result | VARCHAR(255) | 处理结果存放位置 |
status | INT | 任务状态(0 - 有效,1 - 无效) |
timeout | INT | combine子任务的超时时间 |
must_after | TIMESTAMP | 任务必须在该点后开始执行 |
log_time | TIMESTAMP | 录入时间 |
子任务表db_homework.t_task
字段 | 类型 | 释义 |
id | INT | 子任务id |
task_tpl_id | INT | 子任务模板id |
worker_name | VARCHAR(32) | 接受该任务的worker的标识名 |
work_id | INT | 对应的主任务的id |
type | INT | 子任务处理类型 |
resource | VARCHAR(255) | 处理资源位置路径 |
result | VARCHAR(255) | 任务结果存放路径 |
status | INT | 任务状态(0 - 可用,1 - 已被接,2 - 完成) |
timeout | INT | 子任务的超时时间 |
must_after | TIMESTAMP | 该任务必须在该时刻后执行 |
accept_time | TIMESTAMP | 任务被接的时间 |
log_time | TIMESTAMP | 任务录入时间 |
finish_time | TIMESTAMP | 完成时间 |