From 1b559f5554d6e5eab2268fed5ffe64e170fb9194 Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Mon, 9 Sep 2024 12:12:21 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E6=A0=87=E5=87=86=E5=8C=96=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/etl/basic/DataAccessBasic.java | 30 +++++++++++++ .../java/com/muyu/etl/basic/TaskBasic.java | 17 ++++++++ .../muyu/{ => etl}/domain/DataStructure.java | 4 +- .../com/muyu/{ => etl}/enums/DataType.java | 2 +- .../com/muyu/etl/scope/TaskScopeBasic.java | 27 ++++++++++++ .../com/muyu/etl/scope/TaskScopeConfig.java | 42 +++++++++++++++++++ 6 files changed, 119 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/muyu/etl/basic/DataAccessBasic.java create mode 100644 src/main/java/com/muyu/etl/basic/TaskBasic.java rename src/main/java/com/muyu/{ => etl}/domain/DataStructure.java (88%) rename src/main/java/com/muyu/{ => etl}/enums/DataType.java (99%) create mode 100644 src/main/java/com/muyu/etl/scope/TaskScopeBasic.java create mode 100644 src/main/java/com/muyu/etl/scope/TaskScopeConfig.java diff --git a/src/main/java/com/muyu/etl/basic/DataAccessBasic.java b/src/main/java/com/muyu/etl/basic/DataAccessBasic.java new file mode 100644 index 0000000..432b3b2 --- /dev/null +++ b/src/main/java/com/muyu/etl/basic/DataAccessBasic.java @@ -0,0 +1,30 @@ +package com.muyu.etl.basic; + +import com.muyu.etl.domain.DataStructure; + +/** + * @Author: DongZeLiang + * @date: 2024/9/9 + * @Description: 数据接入标准 + * @Version: 1.0 + */ +public interface DataAccessBasic extends TaskBasic{ + + /** + * 数据值 + * @return 返回查询的数据值 + */ + public DataStructure getDataStructure(); + + /** + * 数据记录 + * @return 数据记录 + */ + public DataStructure[] getRow(); + + /** + * 数据集 + * @return 数据集 + */ + public DataStructure[][] getRows(); +} diff --git a/src/main/java/com/muyu/etl/basic/TaskBasic.java b/src/main/java/com/muyu/etl/basic/TaskBasic.java new file mode 100644 index 0000000..d2b93ea --- /dev/null +++ b/src/main/java/com/muyu/etl/basic/TaskBasic.java @@ -0,0 +1,17 @@ +package com.muyu.etl.basic; + +import com.muyu.etl.scope.TaskScopeBasic; +import com.muyu.etl.scope.TaskScopeConfig; + +/** + * @Author: DongZeLiang + * @date: 2024/9/9 + * @Description: 任務基準 + * @Version: 1.0 + */ +public interface TaskBasic { + + public default TaskScopeConfig getScopeConfig(){ + return TaskScopeBasic.get(); + } +} diff --git a/src/main/java/com/muyu/domain/DataStructure.java b/src/main/java/com/muyu/etl/domain/DataStructure.java similarity index 88% rename from src/main/java/com/muyu/domain/DataStructure.java rename to src/main/java/com/muyu/etl/domain/DataStructure.java index 51ed796..790b402 100644 --- a/src/main/java/com/muyu/domain/DataStructure.java +++ b/src/main/java/com/muyu/etl/domain/DataStructure.java @@ -1,6 +1,6 @@ -package com.muyu.domain; +package com.muyu.etl.domain; -import com.muyu.enums.DataType; +import com.muyu.etl.enums.DataType; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/muyu/enums/DataType.java b/src/main/java/com/muyu/etl/enums/DataType.java similarity index 99% rename from src/main/java/com/muyu/enums/DataType.java rename to src/main/java/com/muyu/etl/enums/DataType.java index ce55558..6128c13 100644 --- a/src/main/java/com/muyu/enums/DataType.java +++ b/src/main/java/com/muyu/etl/enums/DataType.java @@ -1,4 +1,4 @@ -package com.muyu.enums; +package com.muyu.etl.enums; import com.muyu.common.core.utils.StringUtils; import lombok.extern.log4j.Log4j2; diff --git a/src/main/java/com/muyu/etl/scope/TaskScopeBasic.java b/src/main/java/com/muyu/etl/scope/TaskScopeBasic.java new file mode 100644 index 0000000..e2f0779 --- /dev/null +++ b/src/main/java/com/muyu/etl/scope/TaskScopeBasic.java @@ -0,0 +1,27 @@ +package com.muyu.etl.scope; + + +import org.apache.poi.ss.formula.functions.T; + +/** + * @Author: DongZeLiang + * @date: 2024/9/9 + * @Description: 作用域标准 + * @Version: 1.0 + */ +public class TaskScopeBasic { + + private static final ThreadLocal localScope = new ThreadLocal<>(); + + public static void set(final TaskScopeConfig handler) { + localScope.set(handler); + } + + public static TaskScopeConfig get() { + return localScope.get(); + } + + public static void remove(){ + localScope.remove(); + } +} diff --git a/src/main/java/com/muyu/etl/scope/TaskScopeConfig.java b/src/main/java/com/muyu/etl/scope/TaskScopeConfig.java new file mode 100644 index 0000000..cdc355e --- /dev/null +++ b/src/main/java/com/muyu/etl/scope/TaskScopeConfig.java @@ -0,0 +1,42 @@ +package com.muyu.etl.scope; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.concurrent.LinkedBlockingDeque; + +/** + * @Author: DongZeLiang + * @date: 2024/9/9 + * @Description: 作用域存儲配置對象 + * @Version: 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaskScopeConfig { + + /** + * 任務ID + */ + private String taskId; + + + private LinkedBlockingDeque taskNodeQueue = new LinkedBlockingDeque(); + + public void addTaskNode(Object obj){ + this.taskNodeQueue.add(obj); + } + + public boolean hashTaskNodeNext(){ + return !taskNodeQueue.isEmpty(); + } + + private T nextTaskNode(){ + return (T) taskNodeQueue.poll(); + } + +}