From c27ea00337a8bfe828e3830790ee62e31dc72186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=80=9D=E8=B1=AA?= <1437200870@qq.com> Date: Sun, 8 Sep 2024 20:51:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=BA=BF=E7=A8=8B=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/muyu/domain/NodeRule.java | 31 +++++++++++++ .../java/com/muyu/domain/basic/BasicTask.java | 16 +++++++ .../basic/abstracts/DataTaskAbstracts.java | 22 ++++++++++ .../basic/abstracts/DataTaskHandler.java | 26 +++++++++++ .../abstracts/DataTaskHandlerRowHandler.java | 26 +++++++++++ .../basic/abstracts/DataTaskValueHandler.java | 26 +++++++++++ .../muyu/controller/NodeRuleController.java | 44 +++++++++++++++++++ .../java/com/muyu/mapper/NodeRuleMapper.java | 9 ++++ .../com/muyu/service/NodeRuleService.java | 7 +++ .../muyu/service/impl/TaskServiceImpl.java | 23 +++++++--- 10 files changed, 225 insertions(+), 5 deletions(-) create mode 100644 cloud-task-common/src/main/java/com/muyu/domain/NodeRule.java create mode 100644 cloud-task-common/src/main/java/com/muyu/domain/basic/BasicTask.java create mode 100644 cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskAbstracts.java create mode 100644 cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskHandler.java create mode 100644 cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskHandlerRowHandler.java create mode 100644 cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskValueHandler.java create mode 100644 cloud-task-server/src/main/java/com/muyu/controller/NodeRuleController.java create mode 100644 cloud-task-server/src/main/java/com/muyu/mapper/NodeRuleMapper.java create mode 100644 cloud-task-server/src/main/java/com/muyu/service/NodeRuleService.java diff --git a/cloud-task-common/src/main/java/com/muyu/domain/NodeRule.java b/cloud-task-common/src/main/java/com/muyu/domain/NodeRule.java new file mode 100644 index 0000000..82e4ae7 --- /dev/null +++ b/cloud-task-common/src/main/java/com/muyu/domain/NodeRule.java @@ -0,0 +1,31 @@ +package com.muyu.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @PackageName:com.muyu.domain + * @ClassName:NodeRule + * @Description: + * @author: ¥陈思豪¥ + * @date: 2024/9/8 19:32 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "node_rule") +public class NodeRule { + + @TableId(type = IdType.AUTO) + private Long id; + private Long nodeId; + private Long taskId; + private Long ruleId; + private String config; +} diff --git a/cloud-task-common/src/main/java/com/muyu/domain/basic/BasicTask.java b/cloud-task-common/src/main/java/com/muyu/domain/basic/BasicTask.java new file mode 100644 index 0000000..ebbae56 --- /dev/null +++ b/cloud-task-common/src/main/java/com/muyu/domain/basic/BasicTask.java @@ -0,0 +1,16 @@ +package com.muyu.domain.basic; + +/** + * @PackageName:com.muyu.domain.basic + * @ClassName:BasicTask + * @Description: + * @author: ¥陈思豪¥ + * @date: 2024/9/8 19:15 + */ +public interface BasicTask { + + void set(T dataValue); + + T get(); + +} diff --git a/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskAbstracts.java b/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskAbstracts.java new file mode 100644 index 0000000..76efd0a --- /dev/null +++ b/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskAbstracts.java @@ -0,0 +1,22 @@ +package com.muyu.domain.basic.abstracts; + +import com.muyu.domain.basic.BasicTask; + +/** + * @PackageName:com.muyu.domain.basic.abstracts + * @ClassName:DataTaskAbstracts + * @Description: + * @author: ¥陈思豪¥ + * @date: 2024/9/8 19:18 + */ +public class DataTaskAbstracts implements BasicTask { + @Override + public void set(Object dataValue) { + + } + + @Override + public Object get() { + return null; + } +} diff --git a/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskHandler.java b/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskHandler.java new file mode 100644 index 0000000..90a5719 --- /dev/null +++ b/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskHandler.java @@ -0,0 +1,26 @@ +package com.muyu.domain.basic.abstracts; + +/** + * @PackageName:com.muyu.domain.basic.abstracts + * @ClassName:DataTaskAbstracts + * @Description: + * @author: ¥陈思豪¥ + * @date: 2024/9/8 19:18 + */ +public class DataTaskHandler { + + private static final ThreadLocal threadLocal = new ThreadLocal<>(); + + public static void set(final Object dataValue) { + threadLocal.set(dataValue); + } + + public static T get() { + return (T) threadLocal.get(); + } + + public static void remove(){ + threadLocal.remove(); + } + +} diff --git a/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskHandlerRowHandler.java b/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskHandlerRowHandler.java new file mode 100644 index 0000000..22e3ef2 --- /dev/null +++ b/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskHandlerRowHandler.java @@ -0,0 +1,26 @@ +package com.muyu.domain.basic.abstracts; + +import com.muyu.domain.DataValue; + +/** + * @PackageName:com.muyu.domain.basic.abstracts + * @ClassName:DataTaskAbstracts + * @Description: + * @author: ¥陈思豪¥ + * @date: 2024/9/8 19:18 + */ +public class DataTaskHandlerRowHandler { + + public DataTaskHandlerRowHandler() { + } + + public static void set(DataValue[] dataValue) { + DataTaskHandler.set(dataValue); + } + + public static DataValue[] get() { + return (DataValue[])DataTaskHandler.get(); + } + + +} diff --git a/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskValueHandler.java b/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskValueHandler.java new file mode 100644 index 0000000..352c4ab --- /dev/null +++ b/cloud-task-common/src/main/java/com/muyu/domain/basic/abstracts/DataTaskValueHandler.java @@ -0,0 +1,26 @@ +package com.muyu.domain.basic.abstracts; + +import com.muyu.domain.DataValue; + +/** + * @PackageName:com.muyu.domain.basic.abstracts + * @ClassName:DataTaskAbstracts + * @Description: + * @author: ¥陈思豪¥ + * @date: 2024/9/8 19:18 + */ +public class DataTaskValueHandler { + + public DataTaskValueHandler() { + } + + public static void set(DataValue dataValue) { + DataTaskHandler.set(dataValue); + } + + public static DataValue get() { + return (DataValue)DataTaskHandler.get(); + } + + +} diff --git a/cloud-task-server/src/main/java/com/muyu/controller/NodeRuleController.java b/cloud-task-server/src/main/java/com/muyu/controller/NodeRuleController.java new file mode 100644 index 0000000..876e26d --- /dev/null +++ b/cloud-task-server/src/main/java/com/muyu/controller/NodeRuleController.java @@ -0,0 +1,44 @@ +package com.muyu.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.muyu.common.core.domain.Result; +import com.muyu.domain.NodeRule; +import com.muyu.service.NodeRuleService; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import static java.nio.file.Files.delete; + +/** + * @PackageName:com.muyu.controller + * @ClassName:NodeRuleController + * @Description: + * @author: ¥陈思豪¥ + * @date: 2024/9/8 19:35 + */ +@RestController +@RequestMapping("/nodeRule") +public class NodeRuleController { + + @Autowired + private NodeRuleService nodeRuleService; + + @RequestMapping(path = "/addNodeRule", method = RequestMethod.POST) + @Operation(summary = "添加任务", description = "根据传来的数据进行任务添加") + public Result addTask(@RequestBody NodeRule nodeRule) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("node_id", nodeRule.getNodeId()); + wrapper.eq("task_id", nodeRule.getId()); + nodeRuleService.remove(wrapper); + boolean save = nodeRuleService.save(nodeRule); + if(!save){ + throw new RuntimeException("失败"); + } + return Result.success(null,"成功"); + } +} diff --git a/cloud-task-server/src/main/java/com/muyu/mapper/NodeRuleMapper.java b/cloud-task-server/src/main/java/com/muyu/mapper/NodeRuleMapper.java new file mode 100644 index 0000000..d053753 --- /dev/null +++ b/cloud-task-server/src/main/java/com/muyu/mapper/NodeRuleMapper.java @@ -0,0 +1,9 @@ +package com.muyu.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.domain.NodeRule; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NodeRuleMapper extends BaseMapper { +} diff --git a/cloud-task-server/src/main/java/com/muyu/service/NodeRuleService.java b/cloud-task-server/src/main/java/com/muyu/service/NodeRuleService.java new file mode 100644 index 0000000..970df13 --- /dev/null +++ b/cloud-task-server/src/main/java/com/muyu/service/NodeRuleService.java @@ -0,0 +1,7 @@ +package com.muyu.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.domain.NodeRule; + +public interface NodeRuleService extends IService { +} diff --git a/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java index 76bd267..bcf5575 100644 --- a/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java +++ b/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java @@ -7,10 +7,7 @@ import com.muyu.common.core.utils.StringUtils; import com.muyu.domain.*; import com.muyu.domain.req.TaskInfoReq; import com.muyu.mapper.TaskMapper; -import com.muyu.service.TaskInputService; -import com.muyu.service.TaskJoinService; -import com.muyu.service.TaskOutputService; -import com.muyu.service.TaskService; +import com.muyu.service.*; import com.muyu.task.feign.DataValueClient; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; @@ -19,6 +16,7 @@ import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.concurrent.ConcurrentHashMap; import static com.muyu.task.PriorityThreadPool.*; @@ -162,7 +160,7 @@ public class TaskServiceImpl extends ServiceImpl implement } }else{ LambdaQueryWrapper selectOne = new LambdaQueryWrapper<>(); - queryWrapper.eq(TaskInputInfo::getTaskId, taskId); + selectOne.eq(TaskInputInfo::getTaskId, taskId); TaskInputInfo taskInputInfo = taskInputService.getOne(selectOne); leftJoin += taskInputInfo.getTableName() + " " + taskInputInfo.getTableAsName(); } @@ -263,6 +261,9 @@ public class TaskServiceImpl extends ServiceImpl implement } + + + // static class Worker implements Runnable { // private final PriorityBlockingQueue queue; // @@ -344,4 +345,16 @@ public class TaskServiceImpl extends ServiceImpl implement // } // } } + + @Autowired + private NodeRuleService nodeRuleService; + +// @Autowired +// private RuleFeign ruleFeign; + +// public static Map> engineMap = new ConcurrentHashMap<>(); +// public static Map> engineRowMap = new ConcurrentHashMap<>(); +// public static Map> engineDataSetMap = new ConcurrentHashMap<>(); + + }