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 30f9f2b..4526518 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 @@ -1,8 +1,14 @@ package com.xiang.app.quartz.admin.server; +import com.xiang.xservice.basic.common.resp.Result; import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; + /** * @Author: xiang * @Date: 2026-01-06 09:18 @@ -10,7 +16,10 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequiredArgsConstructor +@RequestMapping("/open/quartz/register") public class XxzJobRegisterController { + @PostMapping("/single") + public Result registerSingle(@NotNull(message = "单个注册") @Valid ) } 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 16add99..ec5be80 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 @@ -1,6 +1,7 @@ package com.xiang.core.quartz.api; import com.xiang.core.quartz.model.JobConfigDO; +import com.xiang.core.quartz.model.JobDefinition; import java.util.List; @@ -12,4 +13,6 @@ public interface AdminJobClient { List fetchJobByAppName(String appName); List fetchJobByAppNameAndVersion(String appName, Integer version); + + void registerJob(JobDefinition jobDefinition); } 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 0222d4e..4e1192c 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 @@ -5,12 +5,14 @@ import com.alibaba.fastjson2.JSONObject; 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.XxzJobProperties; import com.xiang.xmc.service.http.helper.HttpHelper; 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; @@ -21,7 +23,7 @@ import java.util.Objects; */ @Component @RequiredArgsConstructor -public class HttpAdminJobClientImpl implements AdminJobClient{ +public class HttpAdminJobClientImpl implements AdminJobClient { private final XxzJobProperties xxzJobProperties; @Override @@ -63,4 +65,18 @@ public class HttpAdminJobClientImpl implements AdminJobClient{ } return Lists.newArrayList(); } + + @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()); + + + } } 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 5f59639..ea5f635 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 @@ -1,6 +1,7 @@ package com.xiang.core.quartz.scanner; import com.xiang.core.quartz.annotation.XxzJob; +import com.xiang.core.quartz.api.AdminJobClient; import com.xiang.core.quartz.holder.JobDefinitionHolder; import com.xiang.core.quartz.model.JobDefinition; import lombok.extern.slf4j.Slf4j; @@ -26,6 +27,8 @@ public class JobScanner implements SmartInitializingSingleton { @Autowired private ApplicationContext applicationContext; + @Autowired + private AdminJobClient adminJobClient; @Override public void afterSingletonsInstantiated() { @@ -50,9 +53,8 @@ public class JobScanner implements SmartInitializingSingleton { job.setDistributed(xxzJob.distributed()); job.setBean(bean); job.setMethod(method); -// job.setEnabled(); -// job.setCron(xxzJob.cron()); JobDefinitionHolder.register(job); + adminJobClient.registerJob(job); } } }