序
本文主要研究一下otter的NodeTask
NodeTask
otter/node/common/src/main/java/com/alibaba/otter/node/common/config/model/NodeTask.java
public class NodeTask implements Serializable {
private static final long serialVersionUID = 5442938515474956890L;
private Pipeline pipeline;
private List<StageType> stage = new ArrayList<StageType>(); // 任务类型
private List<TaskEvent> event = new ArrayList<TaskEvent>(); // 任务事件,新增/修改
private boolean shutdown = false;
public boolean isShutdown() {
return shutdown;
}
public void setShutdown(boolean shutdown) {
this.shutdown = shutdown;
}
/**
* 任务事件,新增/删除/修改
*/
public static enum TaskEvent {
CREATE, DELETE;
public boolean isCreate() {
return this.equals(TaskEvent.CREATE);
}
public boolean isDelete() {
return this.equals(TaskEvent.DELETE);
}
}
public Pipeline getPipeline() {
return pipeline;
}
public void setPipeline(Pipeline pipeline) {
this.pipeline = pipeline;
}
public List<StageType> getStage() {
return stage;
}
public void setStage(List<StageType> stage) {
this.stage = stage;
}
public List<TaskEvent> getEvent() {
return event;
}
public void setEvent(List<TaskEvent> event) {
this.event = event;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
}
}
- NodeTask定义了pipeline、stage、event属性
Pipeline
otter/shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/pipeline/Pipeline.java
public class Pipeline implements Serializable {
private static final long serialVersionUID = 5055655233043393285L;
private Long id;
private Long channelId; // 对应关联的channel唯一标示id
private String name;
private String description; // 描述信息
private List<Node> selectNodes;
private List<Node> extractNodes;
private List<Node> loadNodes;
private List<DataMediaPair> pairs;
private Date gmtCreate;
private Date gmtModified;
private PipelineParameter parameters = new PipelineParameter();
//......
}
- Pipeline定义了id、channelId、name、description、selectNodes、extractNodes、loadNodes、pairs、parameters等属性
StageType
otter/shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/enums/StageType.java
public enum StageType {
SELECT, EXTRACT, TRANSFORM, LOAD;
public boolean isSelect() {
return this.equals(StageType.SELECT);
}
public boolean isExtract() {
return this.equals(StageType.EXTRACT);
}
/**
* transform和load一定会同时出现
*/
public boolean isTransform() {
return this.equals(StageType.TRANSFORM);
}
/**
* transform和load一定会同时出现
*/
public boolean isLoad() {
return this.equals(StageType.LOAD);
}
}
- StageType分SELECT, EXTRACT, TRANSFORM, LOAD这个类型
小结
NodeTask定义了pipeline、stage、event属性;Pipeline定义了id、channelId、name、description、selectNodes、extractNodes、loadNodes、pairs、parameters等属性;StageType分SELECT, EXTRACT, TRANSFORM, LOAD这个类型
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。