diff --git a/pom.xml b/pom.xml
index 0de3323..5cf415e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,7 +46,7 @@
com.xiang.starter
xmc-logger-starter
- 1.0
+ 1.1
diff --git a/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/domain/req/TaskRegisterRequest.java b/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/domain/req/TaskRegisterRequest.java
index 9620a41..bee683c 100644
--- a/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/domain/req/TaskRegisterRequest.java
+++ b/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/domain/req/TaskRegisterRequest.java
@@ -4,6 +4,8 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
+import javax.validation.constraints.NotBlank;
+
/**
* @Author: xiang
* @Date: 2026-01-05 15:49
@@ -16,11 +18,13 @@ public class TaskRegisterRequest {
/**
* 应用名称
*/
+ @NotBlank(message = "应用名称不能为空")
private String applicationName;
/**
* 应用地址
*/
+ @NotBlank(message = "应用地址不能为空")
private String applicationAddress;
/**
diff --git a/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/server/XxzJobRegisterController.java b/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/server/XxzJobRegisterController.java
index cd58df8..17ca4d8 100644
--- a/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/server/XxzJobRegisterController.java
+++ b/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/server/XxzJobRegisterController.java
@@ -5,6 +5,7 @@ import com.xiang.app.quartz.admin.service.ITaskConfigService;
import com.xiang.xservice.basic.common.resp.Result;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -26,13 +27,13 @@ public class XxzJobRegisterController {
private final ITaskConfigService taskConfigService;
@PostMapping("/single")
- public Result registerSingle(@NotNull(message = "单个注册") @Valid TaskRegisterRequest request){
+ public Result registerSingle(@RequestBody @Valid @NotNull(message = "请求参数不能为空") TaskRegisterRequest request){
taskConfigService.registerTask(request);
return Result.success();
}
@PostMapping("/batch")
- public Result batch(@NotEmpty(message = "请求参数不能为空") @Valid List request) {
+ public Result batch(@RequestBody @NotEmpty(message = "请求参数不能为空") @Valid List request) {
taskConfigService.registerTasks(request);
return Result.success();
}
diff --git a/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/service/impl/TaskConfigServiceImpl.java b/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/service/impl/TaskConfigServiceImpl.java
index c55bf5e..ce6a10b 100644
--- a/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/service/impl/TaskConfigServiceImpl.java
+++ b/xservice-quartz-admin/src/main/java/com/xiang/app/quartz/admin/service/impl/TaskConfigServiceImpl.java
@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -102,6 +103,6 @@ public class TaskConfigServiceImpl implements ITaskConfigService {
jobConfigDO.setCron(item.getCron());
jobConfigDO.setClazz(item.getClazz());
jobConfigDO.setMethod(item.getMethod());
- jobConfigDO.setJobSwitch(0);
+ jobConfigDO.setJobSwitch(Objects.isNull(jobConfigDO.getJobSwitch()) ? 0 : jobConfigDO.getJobSwitch());
}
}
diff --git a/xservice-quartz-core/pom.xml b/xservice-quartz-core/pom.xml
index 0b59d29..2e3710e 100644
--- a/xservice-quartz-core/pom.xml
+++ b/xservice-quartz-core/pom.xml
@@ -28,7 +28,7 @@
com.xiang.starter
xmc-http-starter
- 1.0
+ 2.0-SNAPSHOT
com.xiang.starter
diff --git a/xservice-quartz-core/src/main/java/com/xiang/core/quartz/api/AdminJobClient.java b/xservice-quartz-core/src/main/java/com/xiang/core/quartz/api/AdminJobClient.java
index ec5be80..b503986 100644
--- a/xservice-quartz-core/src/main/java/com/xiang/core/quartz/api/AdminJobClient.java
+++ b/xservice-quartz-core/src/main/java/com/xiang/core/quartz/api/AdminJobClient.java
@@ -14,5 +14,5 @@ public interface AdminJobClient {
List fetchJobByAppName(String appName);
List fetchJobByAppNameAndVersion(String appName, Integer version);
- void registerJob(JobDefinition jobDefinition);
+ void registerJob(JobDefinition jobDefinition, String className);
}
diff --git a/xservice-quartz-core/src/main/java/com/xiang/core/quartz/api/HttpAdminJobClientImpl.java b/xservice-quartz-core/src/main/java/com/xiang/core/quartz/api/HttpAdminJobClientImpl.java
index 4e1192c..fb44b93 100644
--- a/xservice-quartz-core/src/main/java/com/xiang/core/quartz/api/HttpAdminJobClientImpl.java
+++ b/xservice-quartz-core/src/main/java/com/xiang/core/quartz/api/HttpAdminJobClientImpl.java
@@ -6,13 +6,14 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.xiang.core.quartz.model.JobConfigDO;
import com.xiang.core.quartz.model.JobDefinition;
+import com.xiang.core.quartz.model.TaskRegisterRequest;
import com.xiang.core.quartz.model.XxzJobProperties;
-import com.xiang.xmc.service.http.helper.HttpHelper;
+import com.xiang.xmc.service.http.helper.BaseHttpHelp;
+import com.xiang.xmc.service.http.helper.HttpHelperFactory;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
-import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -26,13 +27,15 @@ import java.util.Objects;
public class HttpAdminJobClientImpl implements AdminJobClient {
private final XxzJobProperties xxzJobProperties;
+ private static final BaseHttpHelp httpHelp = HttpHelperFactory.createQuartzHttp();
+
@Override
public List fetchJobByAppName(String appName) {
String address = xxzJobProperties.getAdminAddress();
address = address + "/open/quartz/fetch/list";
Map params = Maps.newHashMap();
params.put("appName", appName);
- String resp = HttpHelper.doGet(address, null, params);
+ String resp = httpHelp.doGet(address, params);
if (StringUtils.isNotBlank(resp)) {
JSONObject jsonObject = JSON.parseObject(resp);
if (Objects.nonNull(jsonObject)) {
@@ -52,7 +55,7 @@ public class HttpAdminJobClientImpl implements AdminJobClient {
Map params = Maps.newHashMap();
params.put("appName", appName);
params.put("currVersion", String.valueOf(version));
- String resp = HttpHelper.doGet(address, null, params);
+ String resp = httpHelp.doGet(address, params);
if (StringUtils.isNotBlank(resp)) {
JSONObject jsonObject = JSON.parseObject(resp);
@@ -67,16 +70,16 @@ public class HttpAdminJobClientImpl implements AdminJobClient {
}
@Override
- public void registerJob(JobDefinition jobDefinition) {
- JobConfigDO jobConfigDO = new JobConfigDO();
- jobConfigDO.setApplicationName(xxzJobProperties.getAppName());
- jobConfigDO.setApplicationAddress(xxzJobProperties.getAdminAddress());
- jobConfigDO.setBeanName(jobDefinition.getName());
- jobConfigDO.setClazz(jobConfigDO.getClazz());
- jobConfigDO.setMethod(jobConfigDO.getMethod());
- jobConfigDO.setCreateTime(LocalDateTime.now());
- jobConfigDO.setUpdateTime(LocalDateTime.now());
-
-
+ public void registerJob(JobDefinition jobDefinition, String className) {
+ TaskRegisterRequest request = new TaskRegisterRequest();
+ request.setApplicationName(xxzJobProperties.getAppName());
+ request.setApplicationAddress(xxzJobProperties.getAdminAddress());
+ request.setBeanName(jobDefinition.getName());
+ request.setCron(jobDefinition.getCron());
+ request.setClazz(className);
+ request.setMethod(jobDefinition.getMethod().getName());
+ String address = xxzJobProperties.getAdminAddress();
+ address = address + "/open/quartz/register/single";
+ httpHelp.doPost(address, JSON.toJSONString(request));
}
}
diff --git a/xservice-quartz-core/src/main/java/com/xiang/core/quartz/model/TaskRegisterRequest.java b/xservice-quartz-core/src/main/java/com/xiang/core/quartz/model/TaskRegisterRequest.java
new file mode 100644
index 0000000..c465f33
--- /dev/null
+++ b/xservice-quartz-core/src/main/java/com/xiang/core/quartz/model/TaskRegisterRequest.java
@@ -0,0 +1,45 @@
+package com.xiang.core.quartz.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Author: xiang
+ * @Date: 2026-01-05 15:49
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TaskRegisterRequest {
+
+ /**
+ * 应用名称
+ */
+ private String applicationName;
+
+ /**
+ * 应用地址
+ */
+ private String applicationAddress;
+
+ /**
+ * 定时任务名称
+ */
+ private String beanName;
+
+ /**
+ * 任务执行调度时间
+ */
+ private String cron;
+
+ /**
+ * 类名
+ */
+ private String clazz;
+
+ /**
+ * 方法
+ */
+ private String method;
+}
diff --git a/xservice-quartz-core/src/main/java/com/xiang/core/quartz/scanner/JobScanner.java b/xservice-quartz-core/src/main/java/com/xiang/core/quartz/scanner/JobScanner.java
index ea5f635..49f0096 100644
--- a/xservice-quartz-core/src/main/java/com/xiang/core/quartz/scanner/JobScanner.java
+++ b/xservice-quartz-core/src/main/java/com/xiang/core/quartz/scanner/JobScanner.java
@@ -54,7 +54,7 @@ public class JobScanner implements SmartInitializingSingleton {
job.setBean(bean);
job.setMethod(method);
JobDefinitionHolder.register(job);
- adminJobClient.registerJob(job);
+ adminJobClient.registerJob(job, method.getClass().getName());
}
}
}