diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/IJobExecutor.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/IJobExecutor.java index f790cd73c..e92d0f671 100644 --- a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/IJobExecutor.java +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/IJobExecutor.java @@ -11,5 +11,6 @@ import com.aizuda.snailjob.common.core.model.JobContext; * @since 2.4.0 */ public interface IJobExecutor { + void jobExecute(JobContext jobContext); } diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/MrTaskResult.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/MrTaskResult.java new file mode 100644 index 000000000..6bce83b49 --- /dev/null +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/MrTaskResult.java @@ -0,0 +1,19 @@ +package com.aizuda.snailjob.client.job.core.dto; + +import lombok.Data; + +/** + * Task执行结果 + * + * @author: opensnail + * @date : 2024-06-12 13:59 + */ +@Data +public class MrTaskResult { + + private String taskId; + + private boolean success; + + private String result; +} diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractJobExecutor.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractJobExecutor.java index 5e63bfc00..56bb425e1 100644 --- a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractJobExecutor.java +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractJobExecutor.java @@ -19,6 +19,7 @@ import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; import lombok.extern.slf4j.Slf4j; +import java.util.List; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -94,4 +95,6 @@ public abstract class AbstractJobExecutor implements IJobExecutor { protected abstract ExecuteResult doJobExecute(JobArgs jobArgs); + protected abstract void doMapExecute(List taskList, String mapName); + } diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractMapExecutor.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractMapExecutor.java new file mode 100644 index 000000000..af42f4903 --- /dev/null +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractMapExecutor.java @@ -0,0 +1,24 @@ +package com.aizuda.snailjob.client.job.core.executor; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * @author zhengweilin + * @version 1.0.0 + * @date 2024/06/12 + */ +@Slf4j +public abstract class AbstractMapExecutor extends AbstractJobExecutor { + + @Override + public void doMapExecute(List taskList, String mapName) { + + if (CollectionUtils.isEmpty(taskList)) { + return; + } + System.out.println("TODO"); + } +} diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractMapReduceExecutor.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractMapReduceExecutor.java new file mode 100644 index 000000000..5357d7c15 --- /dev/null +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AbstractMapReduceExecutor.java @@ -0,0 +1,17 @@ +package com.aizuda.snailjob.client.job.core.executor; + +import com.aizuda.snailjob.client.job.core.dto.MrTaskResult; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.aizuda.snailjob.common.core.model.JobContext; + +import java.util.List; + +/** + * @author zhengweilin + * @version 1.0.0 + * @date 2024/06/12 + */ +public abstract class AbstractMapReduceExecutor extends AbstractMapExecutor { + + protected abstract ExecuteResult doReduceExecute(JobContext jobContext, List mrTaskResultList); +} diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AnnotationJobExecutor.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AnnotationJobExecutor.java index 2d5ae3107..7e17690a1 100644 --- a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AnnotationJobExecutor.java +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/AnnotationJobExecutor.java @@ -7,6 +7,8 @@ import com.aizuda.snailjob.client.model.ExecuteResult; import org.springframework.stereotype.Component; import org.springframework.util.ReflectionUtils; +import java.util.List; + /** * 基于注解的执行器 * @@ -28,4 +30,9 @@ public class AnnotationJobExecutor extends AbstractJobExecutor { return (ExecuteResult) ReflectionUtils.invokeMethod(jobExecutorInfo.getMethod(), jobExecutorInfo.getExecutor()); } } + + @Override + protected void doMapExecute(List taskList, String mapName) { + + } }