任务队列
示例:
class NopJobTask {
String taskId;
String jobGroup;
String jobName;
int status;
Timestamp startTime;
Timestamp finishTime;
Timestamp cancelTime;
Timestamp restartTime;
Map<String, Object> jobParams;
ErrorBean errorInfo;
String executorHost;
int executorPort;
IntRangeSet partitionSet;
}
interface IJobTaskExecutor {
void startTask(JobTaskRequest request);
void cancelTask(String taskId);
JobTaskState getTaskState(String taskId);
}
- nop_job_task表中保存了所有执行的异步任务
- 任务状态:已创建、待执行、执行中、已暂停、已结束、已失败、已取消
- 任务可以被分布式执行,因此需要记录执行者地址,执行者端口,执行参数,错误信息
- 任务执行者提供 start, cancel, getState这三个api,同时应该主动向管理端上传执行状态。
- 为了支持并行处理,任务具有partitionSet属性,用于标记当前所处理的数据分区集合