From 64ac13a1fd6c60065d635c306120a1ebb104e2d1 Mon Sep 17 00:00:00 2001
From: byteblogs168 <598092184@qq.com>
Date: Sat, 19 Oct 2024 19:08:53 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E6=B5=8B=E8=AF=95openapi?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 +-
.../snailjob/controller/JobController.java | 24 ++++++++
.../snailjob/handler/TestAddJobHandler.java | 57 +++++++++++++++++++
.../handler/TestGetJobDetailExecutor.java | 23 ++++++++
.../handler/TestTriggerJobExecutor.java | 22 +++++++
.../handler/TestTriggerWorkFlowExecutor.java | 23 ++++++++
.../handler/TestUpdateJobExecutor.java | 27 +++++++++
.../handler/TestUpdateJobStatusExecutor.java | 26 +++++++++
.../TestUpdateWorkFLowStatusExecutor.java | 26 +++++++++
9 files changed, 231 insertions(+), 3 deletions(-)
create mode 100644 src/main/java/com/example/snailjob/controller/JobController.java
create mode 100644 src/main/java/com/example/snailjob/handler/TestAddJobHandler.java
create mode 100644 src/main/java/com/example/snailjob/handler/TestGetJobDetailExecutor.java
create mode 100644 src/main/java/com/example/snailjob/handler/TestTriggerJobExecutor.java
create mode 100644 src/main/java/com/example/snailjob/handler/TestTriggerWorkFlowExecutor.java
create mode 100644 src/main/java/com/example/snailjob/handler/TestUpdateJobExecutor.java
create mode 100644 src/main/java/com/example/snailjob/handler/TestUpdateJobStatusExecutor.java
create mode 100644 src/main/java/com/example/snailjob/handler/TestUpdateWorkFLowStatusExecutor.java
diff --git a/pom.xml b/pom.xml
index 3fcd0a3..d8e9ffc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,17 +44,17 @@
com.aizuda
snail-job-client-starter
- 1.1.1
+ 1.2.0-beta2
com.aizuda
snail-job-client-retry-core
- 1.1.1
+ 1.2.0-beta2
com.aizuda
snail-job-client-job-core
- 1.1.1
+ 1.2.0-beta2
com.googlecode.aviator
diff --git a/src/main/java/com/example/snailjob/controller/JobController.java b/src/main/java/com/example/snailjob/controller/JobController.java
new file mode 100644
index 0000000..4c92f75
--- /dev/null
+++ b/src/main/java/com/example/snailjob/controller/JobController.java
@@ -0,0 +1,24 @@
+package com.example.snailjob.controller;
+
+import com.example.snailjob.handler.TestAddJobHandler;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author opensnail
+ * @date 2024-10-19 10:41:25
+ * @since sj_1.2.0-beta2
+ */
+@RestController
+@RequestMapping("/open-api/job")
+@Tag(name = "JobOpenApi", description = "通过OpenApi可以灵活的实现对Job的增、改、查功能")
+@RequiredArgsConstructor
+public class JobController {
+ private final TestAddJobHandler testAddJobHandler;
+
+ @PostMapping("/custer/add")
+ public Long addClusterJob(@RequestBody String jobName) {
+ return testAddJobHandler.addClusterJob(jobName);
+ }
+}
diff --git a/src/main/java/com/example/snailjob/handler/TestAddJobHandler.java b/src/main/java/com/example/snailjob/handler/TestAddJobHandler.java
new file mode 100644
index 0000000..051ab3b
--- /dev/null
+++ b/src/main/java/com/example/snailjob/handler/TestAddJobHandler.java
@@ -0,0 +1,57 @@
+package com.example.snailjob.handler;
+
+import com.aizuda.snailjob.client.job.core.enums.AllocationAlgorithmEnum;
+import com.aizuda.snailjob.client.job.core.enums.TriggerTypeEnum;
+import com.aizuda.snailjob.client.job.core.openapi.SnailJobOpenApi;
+import com.aizuda.snailjob.common.core.enums.BlockStrategyEnum;
+import org.springframework.stereotype.Component;
+
+@Component
+public class TestAddJobHandler {
+
+ /**
+ * 新增集群模式的任务
+ *
+ * @param jobName 任务名称
+ * @return 任务id
+ */
+ public Long addClusterJob(String jobName) {
+ return SnailJobOpenApi.addClusterJob()
+ .setRouteKey(AllocationAlgorithmEnum.RANDOM)
+ .setJobName(jobName)
+ .setExecutorInfo("testJobExecutor")
+ .setExecutorTimeout(30)
+ .setDescription("add")
+ .setBlockStrategy(BlockStrategyEnum.DISCARD)
+ .setMaxRetryTimes(1)
+ .setTriggerType(TriggerTypeEnum.SCHEDULED_TIME)
+ .setTriggerInterval(String.valueOf(60))
+ .addArgsStr("测试数据", 123)
+ .addArgsStr("addArg", "args")
+ .setRetryInterval(3)
+ .execute();
+
+ }
+
+ /**
+ * 新增集群模式的任务
+ *
+ * @param jobName 任务名称
+ * @return 任务id
+ */
+ public Long addShardingJob(String jobName) {
+ return SnailJobOpenApi.addShardingJob()
+ .setJobName(jobName)
+ .setExecutorInfo("testJobExecutor")
+ .setExecutorTimeout(30)
+ .setDescription("add")
+ .setBlockStrategy(BlockStrategyEnum.DISCARD)
+ .setMaxRetryTimes(1)
+ .setTriggerType(TriggerTypeEnum.SCHEDULED_TIME)
+ .setTriggerInterval(String.valueOf(60))
+ .addShardingArgs("分片1", "分片2", "分片3")
+ .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
new file mode 100644
index 0000000..3da31de
--- /dev/null
+++ b/src/main/java/com/example/snailjob/handler/TestGetJobDetailExecutor.java
@@ -0,0 +1,23 @@
+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