diff --git a/src/main/java/com/example/snailjob/controller/JobController.java b/src/main/java/com/example/snailjob/controller/JobController.java index 4c92f75..f864b5f 100644 --- a/src/main/java/com/example/snailjob/controller/JobController.java +++ b/src/main/java/com/example/snailjob/controller/JobController.java @@ -1,6 +1,10 @@ package com.example.snailjob.controller; +import com.aizuda.snailjob.client.job.core.dto.JobResponseVO; import com.example.snailjob.handler.TestAddJobHandler; +import com.example.snailjob.handler.TestQueryJobHandler; +import com.example.snailjob.handler.TestTriggerJobHandler; +import com.example.snailjob.handler.TestUpdateJobStatusHandler; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -16,9 +20,47 @@ import org.springframework.web.bind.annotation.*; @RequiredArgsConstructor public class JobController { private final TestAddJobHandler testAddJobHandler; + private final TestQueryJobHandler testQueryJobHandler; + private final TestTriggerJobHandler testTriggerJobHandler; + private final TestUpdateJobStatusHandler testUpdateJobStatusHandler; @PostMapping("/custer/add") public Long addClusterJob(@RequestBody String jobName) { return testAddJobHandler.addClusterJob(jobName); } + + @PostMapping("/broadcast/add") + public Long addBroadcastJob(@RequestBody String jobName) { + return testAddJobHandler.addBroadcastJob(jobName); + } + + @PostMapping("/sharding/add") + public Long addShardingJob(@RequestBody String jobName) { + return testAddJobHandler.addShardingJob(jobName); + } + + @PostMapping("/map/add") + public Long addMapJob(@RequestBody String jobName) { + return testAddJobHandler.addMapJob(jobName); + } + + @PostMapping("/map-reduce/add") + public Long addMapReduceJob(@RequestBody String jobName) { + return testAddJobHandler.addMapReduceJob(jobName); + } + + @GetMapping("/detail/id") + public JobResponseVO addMapReduceJob(@RequestParam("id") Long id) { + return testQueryJobHandler.queryJob(id); + } + + @PostMapping("/trigger/{id}") + public Boolean triggerJob(@PathVariable("id") Long id) { + return testTriggerJobHandler.triggerJob(id); + } + + @PutMapping("/update/status/{id}") + public Boolean updateJob(@PathVariable("id") Long id) { + return testUpdateJobStatusHandler.updateJobStatus(id); + } } diff --git a/src/main/java/com/example/snailjob/handler/TestAddJobHandler.java b/src/main/java/com/example/snailjob/handler/TestAddJobHandler.java index 051ab3b..8f184f4 100644 --- a/src/main/java/com/example/snailjob/handler/TestAddJobHandler.java +++ b/src/main/java/com/example/snailjob/handler/TestAddJobHandler.java @@ -39,6 +39,29 @@ public class TestAddJobHandler { * @param jobName 任务名称 * @return 任务id */ + public Long addBroadcastJob(String jobName) { + return SnailJobOpenApi.addBroadcastJob() + .setJobName(jobName) + .setExecutorInfo("testJobExecutor") + .setExecutorTimeout(30) + .setDescription("add") + .setBlockStrategy(BlockStrategyEnum.DISCARD) + .setMaxRetryTimes(1) + .setTriggerType(TriggerTypeEnum.CRON) + .setTriggerInterval("afas") + .addArgsStr("测试数据", 123) + .addArgsStr("addArg", "args") + .setRetryInterval(3) + .execute(); + + } + + /** + * 新增Sharding模式的任务 + * + * @param jobName 任务名称 + * @return 任务id + */ public Long addShardingJob(String jobName) { return SnailJobOpenApi.addShardingJob() .setJobName(jobName) @@ -48,8 +71,54 @@ public class TestAddJobHandler { .setBlockStrategy(BlockStrategyEnum.DISCARD) .setMaxRetryTimes(1) .setTriggerType(TriggerTypeEnum.SCHEDULED_TIME) - .setTriggerInterval(String.valueOf(60)) + .setTriggerInterval(60) .addShardingArgs("分片1", "分片2", "分片3") + .setParallelNum(1) + .setRetryInterval(3) + .execute(); + + } + + /** + * 新增MapReduce模式的任务 + * + * @param jobName 任务名称 + * @return 任务id + */ + public Long addMapJob(String jobName) { + return SnailJobOpenApi.addMapJob() + .setJobName(jobName) + .setExecutorInfo("testJobExecutor") + .setExecutorTimeout(30) + .setDescription("add") + .setBlockStrategy(BlockStrategyEnum.DISCARD) + .setMaxRetryTimes(1) + .setTriggerType(TriggerTypeEnum.SCHEDULED_TIME) + .setTriggerInterval(String.valueOf(60)) + .setParallelNum(3) + .setRetryInterval(3) + .execute(); + + } + + /** + * 新增MapReduce模式的任务 + * + * @param jobName 任务名称 + * @return 任务id + */ + public Long addMapReduceJob(String jobName) { + return SnailJobOpenApi.addMapReduceJob() + .setJobName(jobName) + .setExecutorInfo("testJobExecutor") + .setExecutorTimeout(30) + .setDescription("add") + .setBlockStrategy(BlockStrategyEnum.DISCARD) + .setMaxRetryTimes(1) + .setTriggerType(TriggerTypeEnum.SCHEDULED_TIME) + .setTriggerInterval(String.valueOf(60)) + .setParallelNum(3) + .setShardNum(2) .setRetryInterval(3) .execute(); diff --git a/src/main/java/com/example/snailjob/handler/TestGetJobDetailExecutor.java b/src/main/java/com/example/snailjob/handler/TestGetJobDetailExecutor.java deleted file mode 100644 index 3da31de..0000000 --- a/src/main/java/com/example/snailjob/handler/TestGetJobDetailExecutor.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.snailjob.handler; - -import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; -import com.aizuda.snailjob.client.job.core.dto.JobArgs; -import com.aizuda.snailjob.client.job.core.dto.JobResponseVO; -import com.aizuda.snailjob.client.job.core.openapi.SnailJobOpenApi; -import com.aizuda.snailjob.client.model.ExecuteResult; -import com.aizuda.snailjob.common.core.util.JsonUtil; -import org.springframework.stereotype.Component; - -import java.util.Map; - -@Component -@JobExecutor(name = "testGetJobDetailExecutor") -public class TestGetJobDetailExecutor { - public ExecuteResult jobExecute(JobArgs jobArgs) { - Object jobParams = jobArgs.getJobParams(); - Map hashMap = JsonUtil.parseHashMap((String) jobParams); - String id = String.valueOf(hashMap.get("id")); - JobResponseVO execute = SnailJobOpenApi.getJobDetail(Long.valueOf(id)).execute(); - return ExecuteResult.success(execute); - } -} diff --git a/src/main/java/com/example/snailjob/handler/TestTriggerJobExecutor.java b/src/main/java/com/example/snailjob/handler/TestTriggerJobExecutor.java deleted file mode 100644 index c5c2482..0000000 --- a/src/main/java/com/example/snailjob/handler/TestTriggerJobExecutor.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example.snailjob.handler; - -import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; -import com.aizuda.snailjob.client.job.core.dto.JobArgs; -import com.aizuda.snailjob.client.job.core.openapi.SnailJobOpenApi; -import com.aizuda.snailjob.client.model.ExecuteResult; -import com.aizuda.snailjob.common.core.util.JsonUtil; -import org.springframework.stereotype.Component; - -import java.util.Map; - -@Component -@JobExecutor(name = "testTriggerJobExecutor") -public class TestTriggerJobExecutor { - public ExecuteResult jobExecute(JobArgs jobArgs) { - Object jobParams = jobArgs.getJobParams(); - Map hashMap = JsonUtil.parseHashMap((String) jobParams); - String id = String.valueOf(hashMap.get("id")); - Boolean execute = SnailJobOpenApi.triggerJob(Long.valueOf(id)).execute(); - return ExecuteResult.success(execute); - } -} diff --git a/src/main/java/com/example/snailjob/handler/TestTriggerWorkFlowExecutor.java b/src/main/java/com/example/snailjob/handler/TestTriggerWorkFlowExecutor.java deleted file mode 100644 index ddc9b41..0000000 --- a/src/main/java/com/example/snailjob/handler/TestTriggerWorkFlowExecutor.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.snailjob.handler; - -import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; -import com.aizuda.snailjob.client.job.core.dto.JobArgs; -import com.aizuda.snailjob.client.job.core.handler.RequestTriggerJobHandler; -import com.aizuda.snailjob.client.job.core.openapi.SnailJobOpenApi; -import com.aizuda.snailjob.client.model.ExecuteResult; -import com.aizuda.snailjob.common.core.util.JsonUtil; -import org.springframework.stereotype.Component; - -import java.util.Map; - -@Component -@JobExecutor(name = "testTriggerWorkFlowExecutor") -public class TestTriggerWorkFlowExecutor { - public ExecuteResult jobExecute(JobArgs jobArgs) { - Object jobParams = jobArgs.getJobParams(); - Map hashMap = JsonUtil.parseHashMap((String) jobParams); - String id = String.valueOf(hashMap.get("id")); - RequestTriggerJobHandler jobHandler = SnailJobOpenApi.triggerWorkFlow(Long.valueOf(id)); - return ExecuteResult.success(jobHandler.execute()); - } -} diff --git a/src/main/java/com/example/snailjob/handler/TestUpdateJobExecutor.java b/src/main/java/com/example/snailjob/handler/TestUpdateJobExecutor.java deleted file mode 100644 index 595d49d..0000000 --- a/src/main/java/com/example/snailjob/handler/TestUpdateJobExecutor.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.example.snailjob.handler; - -import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; -import com.aizuda.snailjob.client.job.core.dto.JobArgs; -import com.aizuda.snailjob.client.job.core.enums.TriggerTypeEnum; -import com.aizuda.snailjob.client.job.core.handler.RequestUpdateHandler; -import com.aizuda.snailjob.client.job.core.openapi.SnailJobOpenApi; -import com.aizuda.snailjob.client.model.ExecuteResult; -import com.aizuda.snailjob.common.core.util.JsonUtil; -import org.springframework.stereotype.Component; - -import java.util.Map; - -@Component -@JobExecutor(name = "testUpdateJobExecutor") -public class TestUpdateJobExecutor { - public ExecuteResult jobExecute(JobArgs jobArgs) { - Object jobParams = jobArgs.getJobParams(); - Map hashMap = JsonUtil.parseHashMap((String) jobParams); - String id = String.valueOf(hashMap.get("id")); - String jobName = String.valueOf(hashMap.get("jobName")); - RequestUpdateHandler updateHandler = SnailJobOpenApi.updateJob(Long.valueOf(id)); - updateHandler.setJobName(jobName); - updateHandler.setTriggerType(TriggerTypeEnum.WORK_FLOW); - return ExecuteResult.success(updateHandler.execute()); - } -} diff --git a/src/main/java/com/example/snailjob/handler/TestUpdateJobStatusExecutor.java b/src/main/java/com/example/snailjob/handler/TestUpdateJobStatusExecutor.java deleted file mode 100644 index 74f478d..0000000 --- a/src/main/java/com/example/snailjob/handler/TestUpdateJobStatusExecutor.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.example.snailjob.handler; - -import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; -import com.aizuda.snailjob.client.job.core.dto.JobArgs; -import com.aizuda.snailjob.client.job.core.handler.RequestUpdateStatusHandler; -import com.aizuda.snailjob.client.job.core.openapi.SnailJobOpenApi; -import com.aizuda.snailjob.client.model.ExecuteResult; -import com.aizuda.snailjob.common.core.enums.StatusEnum; -import com.aizuda.snailjob.common.core.util.JsonUtil; -import org.springframework.stereotype.Component; - -import java.util.Map; - -@Component -@JobExecutor(name = "testUpdateJobStatusExecutor") -public class TestUpdateJobStatusExecutor { - public ExecuteResult jobExecute(JobArgs jobArgs) { - Object jobParams = jobArgs.getJobParams(); - Map hashMap = JsonUtil.parseHashMap((String) jobParams); - String id = String.valueOf(hashMap.get("id")); - RequestUpdateStatusHandler updateJobStatus = SnailJobOpenApi.updateJobStatus(Long.valueOf(id)); - updateJobStatus.setStatus(StatusEnum.NO); - - return ExecuteResult.success(updateJobStatus.execute()); - } -} diff --git a/src/main/java/com/example/snailjob/handler/TestUpdateJobStatusHandler.java b/src/main/java/com/example/snailjob/handler/TestUpdateJobStatusHandler.java index 2483061..1ab0dda 100644 --- a/src/main/java/com/example/snailjob/handler/TestUpdateJobStatusHandler.java +++ b/src/main/java/com/example/snailjob/handler/TestUpdateJobStatusHandler.java @@ -16,7 +16,7 @@ public class TestUpdateJobStatusHandler { public Boolean updateJobStatus(Long jobId){ return SnailJobOpenApi .updateJobStatus(jobId) - .setStatus(StatusEnum.NO) + .setStatus(StatusEnum.YES) .execute(); } diff --git a/src/main/java/com/example/snailjob/handler/TestUpdateWorkFLowStatusExecutor.java b/src/main/java/com/example/snailjob/handler/TestUpdateWorkFLowStatusExecutor.java deleted file mode 100644 index d42c328..0000000 --- a/src/main/java/com/example/snailjob/handler/TestUpdateWorkFLowStatusExecutor.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.example.snailjob.handler; - -import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; -import com.aizuda.snailjob.client.job.core.dto.JobArgs; -import com.aizuda.snailjob.client.job.core.handler.RequestUpdateStatusHandler; -import com.aizuda.snailjob.client.job.core.openapi.SnailJobOpenApi; -import com.aizuda.snailjob.client.model.ExecuteResult; -import com.aizuda.snailjob.common.core.enums.StatusEnum; -import com.aizuda.snailjob.common.core.util.JsonUtil; -import org.springframework.stereotype.Component; - -import java.util.Map; - -@Component -@JobExecutor(name = "testUpdateWorkFLowStatusExecutor") -public class TestUpdateWorkFLowStatusExecutor { - public ExecuteResult jobExecute(JobArgs jobArgs) { - Object jobParams = jobArgs.getJobParams(); - Map hashMap = JsonUtil.parseHashMap((String) jobParams); - String id = String.valueOf(hashMap.get("id")); - RequestUpdateStatusHandler updateJobStatus = SnailJobOpenApi.updateWorkFlowStatus(Long.valueOf(id)); - updateJobStatus.setStatus(StatusEnum.NO); - - return ExecuteResult.success(updateJobStatus.execute()); - } -}