From 2e6503f403466477e0271600fc39f56b357ef217 Mon Sep 17 00:00:00 2001 From: byteblogs168 <598092184@qq.com> Date: Wed, 26 Jun 2024 18:11:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Map=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../snailjob/job/TestAnnoMapJobExecutor.java | 41 ++++++++++++++ .../job/TestAnnoMapReduceJobExecutor.java | 55 +++++++++++++++++++ .../snailjob/job/TestMapJobExecutor.java | 5 +- .../job/TestMapReduceJobExecutor.java | 5 +- .../job/TestPartitionJobExecutor.java | 2 +- 5 files changed, 103 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/example/snailjob/job/TestAnnoMapJobExecutor.java create mode 100644 src/main/java/com/example/snailjob/job/TestAnnoMapReduceJobExecutor.java diff --git a/src/main/java/com/example/snailjob/job/TestAnnoMapJobExecutor.java b/src/main/java/com/example/snailjob/job/TestAnnoMapJobExecutor.java new file mode 100644 index 0000000..9c5de47 --- /dev/null +++ b/src/main/java/com/example/snailjob/job/TestAnnoMapJobExecutor.java @@ -0,0 +1,41 @@ +package com.example.snailjob.job; + +import com.aizuda.snailjob.client.job.core.MapHandler; +import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; +import com.aizuda.snailjob.client.job.core.annotation.MapExecutor; +import com.aizuda.snailjob.client.job.core.annotation.MergeReduceExecutor; +import com.aizuda.snailjob.client.job.core.annotation.ReduceExecutor; +import com.aizuda.snailjob.client.job.core.dto.MapArgs; +import com.aizuda.snailjob.client.job.core.dto.MergeReduceArgs; +import com.aizuda.snailjob.client.job.core.dto.ReduceArgs; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.google.common.collect.Lists; +import org.springframework.stereotype.Component; + +/** + * @author: opensnail + * @date : 2024-06-26 + */ +@Component +@JobExecutor(name = "testAnnoMapJobExecutor") +public class TestAnnoMapJobExecutor { + +// @MapExecutor +// public ExecuteResult rootMapExecute(MapArgs mapArgs, MapHandler mapHandler) { +// System.out.println(mapArgs); +// return mapHandler.doMap(Lists.newArrayList("aaa"), "MONTH_MAP"); +// } +// +// @MapExecutor(taskName = "MONTH_MAP") +// public ExecuteResult monthMapExecute(MapArgs mapArgs) { +// System.out.println(mapArgs); +// return ExecuteResult.success(123); +// } +// +// @MapExecutor(taskName = "LAST_MAP") +// public ExecuteResult lastMapExecute(MapArgs mapArgs, MapHandler mapHandler) { +// System.out.println(mapArgs); +// return ExecuteResult.success(); +// } + +} diff --git a/src/main/java/com/example/snailjob/job/TestAnnoMapReduceJobExecutor.java b/src/main/java/com/example/snailjob/job/TestAnnoMapReduceJobExecutor.java new file mode 100644 index 0000000..27a28b1 --- /dev/null +++ b/src/main/java/com/example/snailjob/job/TestAnnoMapReduceJobExecutor.java @@ -0,0 +1,55 @@ +package com.example.snailjob.job; + +import com.aizuda.snailjob.client.job.core.MapHandler; +import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; +import com.aizuda.snailjob.client.job.core.annotation.MapExecutor; +import com.aizuda.snailjob.client.job.core.annotation.MergeReduceExecutor; +import com.aizuda.snailjob.client.job.core.annotation.ReduceExecutor; +import com.aizuda.snailjob.client.job.core.dto.MapArgs; +import com.aizuda.snailjob.client.job.core.dto.MergeReduceArgs; +import com.aizuda.snailjob.client.job.core.dto.ReduceArgs; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.google.common.collect.Lists; +import org.springframework.stereotype.Component; + +/** + * @author: opensnail + * @date : 2024-06-26 + */ +@Component +@JobExecutor(name = "testAnnoMapReduceJobExecutor") +public class TestAnnoMapReduceJobExecutor { + + @MapExecutor + public ExecuteResult rootMapExecute(MapArgs mapArgs, MapHandler mapHandler) { + System.out.println(mapArgs); + return mapHandler.doMap(Lists.newArrayList("aaa"), "MONTH_MAP"); + } + + @MapExecutor(taskName = "MONTH_MAP") + public ExecuteResult monthMapExecute(MapArgs mapArgs) { + System.out.println(mapArgs); + return ExecuteResult.success(123); + } + + @MapExecutor(taskName = "LAST_MAP") + public ExecuteResult lastMapExecute(MapArgs mapArgs, MapHandler mapHandler) { + System.out.println(mapArgs); + return ExecuteResult.success(); + } + + @ReduceExecutor + public ExecuteResult reduceExecute(ReduceArgs mapReduceArgs) { + System.out.println(mapReduceArgs); + return ExecuteResult.success(); + } + + /** + * 当只有一个reduce任务时无此执行器 + */ + @MergeReduceExecutor + public ExecuteResult mergeReduceExecute(MergeReduceArgs mergeReduceArgs) { + System.out.println(mergeReduceArgs); + return ExecuteResult.success(); + } +} diff --git a/src/main/java/com/example/snailjob/job/TestMapJobExecutor.java b/src/main/java/com/example/snailjob/job/TestMapJobExecutor.java index f029639..5bfa072 100644 --- a/src/main/java/com/example/snailjob/job/TestMapJobExecutor.java +++ b/src/main/java/com/example/snailjob/job/TestMapJobExecutor.java @@ -1,5 +1,6 @@ package com.example.snailjob.job; +import com.aizuda.snailjob.client.job.core.MapHandler; import com.aizuda.snailjob.client.job.core.dto.MapArgs; import com.aizuda.snailjob.client.job.core.executor.AbstractMapExecutor; @@ -30,7 +31,7 @@ import java.util.Random; public class TestMapJobExecutor extends AbstractMapExecutor { @Override - public ExecuteResult doJobMapExecute(MapArgs mapArgs) { + public ExecuteResult doJobMapExecute(MapArgs mapArgs, MapHandler mapHandler) { MapEnum mapEnum = MapEnum.ofMap(mapArgs.getTaskName()); if (Objects.nonNull(mapEnum) && Objects.nonNull(mapEnum.getMap())) { Map map = mapEnum.getMap(); @@ -40,7 +41,7 @@ public class TestMapJobExecutor extends AbstractMapExecutor { nextName = nextMap.name(); } - return doMap(map.map(mapArgs), nextName); + return mapHandler.doMap(map.map(mapArgs), nextName); } // 未找到map的任务,则说明当前需要进行处理 diff --git a/src/main/java/com/example/snailjob/job/TestMapReduceJobExecutor.java b/src/main/java/com/example/snailjob/job/TestMapReduceJobExecutor.java index 44e0086..7092834 100644 --- a/src/main/java/com/example/snailjob/job/TestMapReduceJobExecutor.java +++ b/src/main/java/com/example/snailjob/job/TestMapReduceJobExecutor.java @@ -1,5 +1,6 @@ package com.example.snailjob.job; +import com.aizuda.snailjob.client.job.core.MapHandler; import com.aizuda.snailjob.client.job.core.dto.MapArgs; import com.aizuda.snailjob.client.job.core.dto.MergeReduceArgs; import com.aizuda.snailjob.client.job.core.dto.ReduceArgs; @@ -32,7 +33,7 @@ import java.util.Random; public class TestMapReduceJobExecutor extends AbstractMapReduceExecutor { @Override - public ExecuteResult doJobMapExecute(MapArgs mapArgs) { + public ExecuteResult doJobMapExecute(MapArgs mapArgs, MapHandler mapHandler) { MapEnum mapEnum = MapEnum.ofMap(mapArgs.getTaskName()); if (Objects.nonNull(mapEnum) && Objects.nonNull(mapEnum.getMap())) { Map map = mapEnum.getMap(); @@ -42,7 +43,7 @@ public class TestMapReduceJobExecutor extends AbstractMapReduceExecutor { nextName = nextMap.name(); } - return doMap(map.map(mapArgs), nextName); + return mapHandler.doMap(map.map(mapArgs), nextName); } // 未找到map的任务,则说明当前需要进行处理 diff --git a/src/main/java/com/example/snailjob/job/TestPartitionJobExecutor.java b/src/main/java/com/example/snailjob/job/TestPartitionJobExecutor.java index b82bb91..c1cdf84 100644 --- a/src/main/java/com/example/snailjob/job/TestPartitionJobExecutor.java +++ b/src/main/java/com/example/snailjob/job/TestPartitionJobExecutor.java @@ -17,7 +17,7 @@ import org.springframework.stereotype.Component; public class TestPartitionJobExecutor { public ExecuteResult jobExecute(JobArgs jobArgs) { - if (jobArgs.getArgsStr().equals("1")) { + if (jobArgs.getJobParams().equals("1")) { throw new NullPointerException("分区空指针抛异常了"); } FailOrderPo failOrderPo = new FailOrderPo();