From 3fab4805c264b34abdb01b076a209d92089ff817 Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Sat, 15 Jun 2024 00:09:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.1.0):=20=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E6=94=AF=E6=8C=81reduce=E8=B0=83=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/job/core/client/JobEndPoint.java | 1 + .../snailjob/client/job/core/dto/MapArgs.java | 7 ++--- .../client/job/core/dto/ReduceArgs.java | 24 ++++++++++++++++ .../core/executor/AbstractJobExecutor.java | 28 ++++++++++++++----- .../core/executor/AbstractMapExecutor.java | 8 +++--- .../executor/AbstractMapReduceExecutor.java | 18 +++++++++++- .../core}/enums/MapReduceStageEnum.java | 2 +- .../common/core/model/JobContext.java | 2 ++ .../job/task/dto/JobTaskExtAttrsDTO.java | 2 +- .../support/dispatch/JobExecutorActor.java | 2 +- .../task/support/dispatch/ReduceActor.java | 3 +- .../task/JobTaskGenerateContext.java | 2 +- .../task/MapReduceTaskGenerator.java | 2 +- .../support/handler/JobTaskBatchHandler.java | 4 +-- .../MapTaskPostHttpRequestHandler.java | 2 +- 15 files changed, 80 insertions(+), 27 deletions(-) create mode 100644 snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/ReduceArgs.java rename {snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task => snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core}/enums/MapReduceStageEnum.java (71%) diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/client/JobEndPoint.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/client/JobEndPoint.java index dcd6e793..61487c8c 100644 --- a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/client/JobEndPoint.java +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/client/JobEndPoint.java @@ -120,6 +120,7 @@ public class JobEndPoint { jobContext.setRetry(dispatchJob.isRetry()); jobContext.setRetryScene(dispatchJob.getRetryScene()); jobContext.setMapName(dispatchJob.getMapName()); + jobContext.setMrStage(dispatchJob.getMrStage()); return jobContext; } diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/MapArgs.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/MapArgs.java index 74f5c0d4..c6310a5e 100644 --- a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/MapArgs.java +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/MapArgs.java @@ -1,6 +1,7 @@ package com.aizuda.snailjob.client.job.core.dto; import lombok.Data; +import lombok.EqualsAndHashCode; /** * Task执行结果 @@ -8,12 +9,10 @@ import lombok.Data; * @author: opensnail * @date : 2024-06-12 13:59 */ +@EqualsAndHashCode(callSuper = true) @Data -public class MapArgs { +public class MapArgs extends JobArgs { private String mapName; - 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/dto/ReduceArgs.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/ReduceArgs.java new file mode 100644 index 00000000..043aa6f2 --- /dev/null +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/dto/ReduceArgs.java @@ -0,0 +1,24 @@ +package com.aizuda.snailjob.client.job.core.dto; + +import com.aizuda.snailjob.common.core.util.JsonUtil; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * Task执行结果 + * + * @author: opensnail + * @date : 2024-06-12 13:59 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ReduceArgs extends JobArgs { + + private List mapResult; + + public List getMapResult() { + return JsonUtil.parseList(getArgsStr(), List.class); + } +} 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 8e5cdffd..951c910c 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 @@ -4,16 +4,16 @@ import com.aizuda.snailjob.client.common.log.support.SnailJobLogManager; import com.aizuda.snailjob.client.job.core.IJobExecutor; import com.aizuda.snailjob.client.job.core.cache.FutureCache; import com.aizuda.snailjob.client.job.core.cache.ThreadPoolCache; -import com.aizuda.snailjob.client.job.core.dto.JobArgs; -import com.aizuda.snailjob.client.job.core.dto.MapReduceArgs; -import com.aizuda.snailjob.client.job.core.dto.ShardingJobArgs; +import com.aizuda.snailjob.client.job.core.dto.*; import com.aizuda.snailjob.client.job.core.log.JobLogMeta; import com.aizuda.snailjob.client.job.core.timer.StopTaskTimerTask; import com.aizuda.snailjob.client.job.core.timer.TimerManager; import com.aizuda.snailjob.client.model.ExecuteResult; import com.aizuda.snailjob.common.core.enums.JobTaskTypeEnum; +import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum; import com.aizuda.snailjob.common.core.model.JobContext; import com.aizuda.snailjob.common.log.enums.LogTypeEnum; +import com.google.common.collect.Lists; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; @@ -48,8 +48,14 @@ public abstract class AbstractJobExecutor implements IJobExecutor { JobArgs jobArgs; if (jobContext.getTaskType() == JobTaskTypeEnum.SHARDING.getType()) { jobArgs = buildShardingJobArgs(jobContext); - } else if (jobContext.getTaskType() == JobTaskTypeEnum.MAP_REDUCE.getType()) { - jobArgs = buildMapReduceJobArgs(jobContext); + } else if (Lists.newArrayList(JobTaskTypeEnum.MAP_REDUCE.getType(), JobTaskTypeEnum.MAP.getType()) + .contains(jobContext.getTaskType())) { + if (MapReduceStageEnum.MAP.name().equals(jobContext.getMrStage())) { + jobArgs = buildMapJobArgs(jobContext); + } else { + jobArgs = buildReduceJobArgs(jobContext); + } + } else { jobArgs = buildJobArgs(jobContext); } @@ -96,8 +102,8 @@ public abstract class AbstractJobExecutor implements IJobExecutor { return jobArgs; } - private static JobArgs buildMapReduceJobArgs(JobContext jobContext) { - MapReduceArgs jobArgs = new MapReduceArgs(); + private static JobArgs buildMapJobArgs(JobContext jobContext) { + MapArgs jobArgs = new MapArgs(); jobArgs.setArgsStr(jobContext.getArgsStr()); jobArgs.setExecutorInfo(jobContext.getExecutorInfo()); jobArgs.setMapName(jobContext.getMapName()); @@ -105,5 +111,13 @@ public abstract class AbstractJobExecutor implements IJobExecutor { return jobArgs; } + private static JobArgs buildReduceJobArgs(JobContext jobContext) { + ReduceArgs jobArgs = new ReduceArgs(); + jobArgs.setArgsStr(jobContext.getArgsStr()); + jobArgs.setExecutorInfo(jobContext.getExecutorInfo()); + jobArgs.setTaskBatchId(jobContext.getTaskBatchId()); + return jobArgs; + } + protected abstract ExecuteResult doJobExecute(JobArgs jobArgs); } 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 index 238fe9f8..fc551d6e 100644 --- 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 @@ -5,7 +5,7 @@ import com.aizuda.snailjob.client.common.rpc.client.RequestBuilder; import com.aizuda.snailjob.client.job.core.IJobExecutor; import com.aizuda.snailjob.client.job.core.client.JobNettyClient; import com.aizuda.snailjob.client.job.core.dto.JobArgs; -import com.aizuda.snailjob.client.job.core.dto.MapReduceArgs; +import com.aizuda.snailjob.client.job.core.dto.MapArgs; import com.aizuda.snailjob.client.model.ExecuteResult; import com.aizuda.snailjob.client.model.request.MapTaskRequest; import com.aizuda.snailjob.common.core.constant.SystemConstants; @@ -33,11 +33,11 @@ public abstract class AbstractMapExecutor extends AbstractJobExecutor implements @Override protected ExecuteResult doJobExecute(final JobArgs jobArgs) { - MapReduceArgs mapReduceArgs = (MapReduceArgs) jobArgs; - return this.doJobExecute(mapReduceArgs); + MapArgs mapArgs = (MapArgs) jobArgs; + return this.doJobMapExecute(mapArgs); } - public abstract ExecuteResult doJobExecute(MapReduceArgs mapReduceArgs); + public abstract ExecuteResult doJobMapExecute(MapArgs mapArgs); public void doMapExecute(List taskList, String nextMapName) { 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 index a41b7cb1..0d5a776b 100644 --- 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 @@ -1,7 +1,11 @@ package com.aizuda.snailjob.client.job.core.executor; +import com.aizuda.snailjob.client.job.core.dto.JobArgs; import com.aizuda.snailjob.client.job.core.dto.MapArgs; +import com.aizuda.snailjob.client.job.core.dto.MapReduceArgs; +import com.aizuda.snailjob.client.job.core.dto.ReduceArgs; import com.aizuda.snailjob.client.model.ExecuteResult; +import com.aizuda.snailjob.common.core.exception.SnailJobMapReduceException; import com.aizuda.snailjob.common.core.model.JobContext; import java.util.List; @@ -13,5 +17,17 @@ import java.util.List; */ public abstract class AbstractMapReduceExecutor extends AbstractMapExecutor { - protected abstract ExecuteResult doReduceExecute(JobContext jobContext, List mapArgsList); + @Override + public ExecuteResult doJobExecute(final JobArgs jobArgs) { + JobContext jobContext = JobContextManager.getJobContext(); + if (jobContext.getMrStage().equals("MAP")) { + return super.doJobExecute(jobArgs); + } else if(jobContext.getMrStage().equals("REDUCE")) { + ReduceArgs reduceArgs = (ReduceArgs) jobArgs; + return doReduceExecute(reduceArgs); + } + throw new SnailJobMapReduceException("非法的MapReduceStage"); + } + + protected abstract ExecuteResult doReduceExecute(ReduceArgs reduceArgs); } diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/enums/MapReduceStageEnum.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/MapReduceStageEnum.java similarity index 71% rename from snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/enums/MapReduceStageEnum.java rename to snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/MapReduceStageEnum.java index 2665a83e..b0642723 100644 --- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/enums/MapReduceStageEnum.java +++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/MapReduceStageEnum.java @@ -1,4 +1,4 @@ -package com.aizuda.snailjob.server.job.task.enums; +package com.aizuda.snailjob.common.core.enums; /** * @author: opensnail diff --git a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/model/JobContext.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/model/JobContext.java index ddcf27c7..520efa1c 100644 --- a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/model/JobContext.java +++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/model/JobContext.java @@ -58,4 +58,6 @@ public class JobContext { * Map名称 */ private String mapName; + + private String mrStage; } diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/dto/JobTaskExtAttrsDTO.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/dto/JobTaskExtAttrsDTO.java index 3122bdb6..8d12a16e 100644 --- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/dto/JobTaskExtAttrsDTO.java +++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/dto/JobTaskExtAttrsDTO.java @@ -2,7 +2,7 @@ package com.aizuda.snailjob.server.job.task.dto; import com.aizuda.snailjob.common.core.enums.JobTaskTypeEnum; import com.aizuda.snailjob.common.core.util.JsonUtil; -import com.aizuda.snailjob.server.job.task.enums.MapReduceStageEnum; +import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum; import lombok.Data; /** diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorActor.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorActor.java index 72b65165..43db0e2f 100644 --- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorActor.java +++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorActor.java @@ -18,7 +18,7 @@ import com.aizuda.snailjob.server.common.exception.SnailJobServerException; import com.aizuda.snailjob.server.common.util.DateUtils; import com.aizuda.snailjob.server.job.task.dto.TaskExecuteDTO; import com.aizuda.snailjob.server.job.task.dto.WorkflowNodeTaskExecuteDTO; -import com.aizuda.snailjob.server.job.task.enums.MapReduceStageEnum; +import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum; import com.aizuda.snailjob.server.job.task.support.JobExecutor; import com.aizuda.snailjob.server.job.task.support.JobTaskConverter; import com.aizuda.snailjob.server.job.task.support.alarm.event.JobTaskFailAlarmEvent; diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/ReduceActor.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/ReduceActor.java index 5871a548..99cfabe5 100644 --- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/ReduceActor.java +++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/ReduceActor.java @@ -6,7 +6,7 @@ import com.aizuda.snailjob.common.core.enums.JobTaskTypeEnum; import com.aizuda.snailjob.common.log.SnailJobLog; import com.aizuda.snailjob.server.common.akka.ActorGenerator; import com.aizuda.snailjob.server.job.task.dto.ReduceTaskDTO; -import com.aizuda.snailjob.server.job.task.enums.MapReduceStageEnum; +import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum; import com.aizuda.snailjob.server.job.task.support.JobExecutor; import com.aizuda.snailjob.server.job.task.support.JobTaskConverter; import com.aizuda.snailjob.server.job.task.support.executor.job.JobExecutorContext; @@ -16,7 +16,6 @@ import com.aizuda.snailjob.server.job.task.support.generator.task.JobTaskGenerat import com.aizuda.snailjob.server.job.task.support.generator.task.JobTaskGeneratorFactory; import com.aizuda.snailjob.server.job.task.support.handler.DistributedLockHandler; import com.aizuda.snailjob.template.datasource.persistence.mapper.JobMapper; -import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskMapper; import com.aizuda.snailjob.template.datasource.persistence.po.Job; import com.aizuda.snailjob.template.datasource.persistence.po.JobTask; import lombok.RequiredArgsConstructor; diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/generator/task/JobTaskGenerateContext.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/generator/task/JobTaskGenerateContext.java index 3842f4e7..6e3094a1 100644 --- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/generator/task/JobTaskGenerateContext.java +++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/generator/task/JobTaskGenerateContext.java @@ -1,6 +1,6 @@ package com.aizuda.snailjob.server.job.task.support.generator.task; -import com.aizuda.snailjob.server.job.task.enums.MapReduceStageEnum; +import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum; import lombok.Data; import java.util.List; diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/generator/task/MapReduceTaskGenerator.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/generator/task/MapReduceTaskGenerator.java index 891c501b..9ffb5039 100644 --- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/generator/task/MapReduceTaskGenerator.java +++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/generator/task/MapReduceTaskGenerator.java @@ -13,7 +13,7 @@ import com.aizuda.snailjob.server.common.dto.RegisterNodeInfo; import com.aizuda.snailjob.server.common.exception.SnailJobServerException; import com.aizuda.snailjob.server.common.util.ClientInfoUtils; import com.aizuda.snailjob.server.job.task.dto.JobTaskExtAttrsDTO; -import com.aizuda.snailjob.server.job.task.enums.MapReduceStageEnum; +import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum; import com.aizuda.snailjob.server.job.task.support.JobTaskConverter; import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskMapper; import com.aizuda.snailjob.template.datasource.persistence.po.JobTask; diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/JobTaskBatchHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/JobTaskBatchHandler.java index 4f71c5fa..12199822 100644 --- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/JobTaskBatchHandler.java +++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/JobTaskBatchHandler.java @@ -9,7 +9,6 @@ import com.aizuda.snailjob.common.core.enums.JobTaskStatusEnum; import com.aizuda.snailjob.common.core.enums.JobTaskTypeEnum; import com.aizuda.snailjob.common.core.enums.StatusEnum; import com.aizuda.snailjob.common.core.util.JsonUtil; -import com.aizuda.snailjob.common.core.util.StreamUtils; import com.aizuda.snailjob.common.log.SnailJobLog; import com.aizuda.snailjob.server.common.WaitStrategy; import com.aizuda.snailjob.server.common.akka.ActorGenerator; @@ -20,10 +19,9 @@ import com.aizuda.snailjob.server.common.util.DateUtils; import com.aizuda.snailjob.server.job.task.dto.CompleteJobBatchDTO; import com.aizuda.snailjob.server.job.task.dto.JobTaskExtAttrsDTO; import com.aizuda.snailjob.server.job.task.dto.JobTimerTaskDTO; -import com.aizuda.snailjob.server.job.task.dto.ReduceTaskDTO; import com.aizuda.snailjob.server.job.task.dto.TaskExecuteDTO; import com.aizuda.snailjob.server.job.task.dto.WorkflowNodeTaskExecuteDTO; -import com.aizuda.snailjob.server.job.task.enums.MapReduceStageEnum; +import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum; import com.aizuda.snailjob.server.job.task.support.JobTaskConverter; import com.aizuda.snailjob.server.job.task.support.alarm.event.JobTaskFailAlarmEvent; import com.aizuda.snailjob.server.job.task.support.cache.ResidentTaskCache; diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/request/MapTaskPostHttpRequestHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/request/MapTaskPostHttpRequestHandler.java index 295c892a..af9bc935 100644 --- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/request/MapTaskPostHttpRequestHandler.java +++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/request/MapTaskPostHttpRequestHandler.java @@ -12,7 +12,7 @@ import com.aizuda.snailjob.common.core.util.JsonUtil; import com.aizuda.snailjob.common.log.SnailJobLog; import com.aizuda.snailjob.server.common.handler.PostHttpRequestHandler; import com.aizuda.snailjob.server.common.util.HttpHeaderUtil; -import com.aizuda.snailjob.server.job.task.enums.MapReduceStageEnum; +import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum; import com.aizuda.snailjob.server.job.task.support.JobExecutor; import com.aizuda.snailjob.server.job.task.support.JobTaskConverter; import com.aizuda.snailjob.server.job.task.support.executor.job.JobExecutorContext;