前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊otter的NodeTask

聊聊otter的NodeTask

原创
作者头像
code4it
修改2020-06-12 10:03:39
4370
修改2020-06-12 10:03:39
举报
文章被收录于专栏:码匠的流水账码匠的流水账

本文主要研究一下otter的NodeTask

NodeTask

otter/node/common/src/main/java/com/alibaba/otter/node/common/config/model/NodeTask.java

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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这个类型

doc

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NodeTask
  • Pipeline
  • StageType
  • 小结
  • doc
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档