fix:注册

This commit is contained in:
xiang
2026-01-11 16:33:19 +08:00
parent 73dcafa3c4
commit e048470e61
4 changed files with 33 additions and 3 deletions

View File

@@ -1,8 +1,14 @@
package com.xiang.app.quartz.admin.server; package com.xiang.app.quartz.admin.server;
import com.xiang.xservice.basic.common.resp.Result;
import lombok.RequiredArgsConstructor; 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 org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/** /**
* @Author: xiang * @Author: xiang
* @Date: 2026-01-06 09:18 * @Date: 2026-01-06 09:18
@@ -10,7 +16,10 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("/open/quartz/register")
public class XxzJobRegisterController { public class XxzJobRegisterController {
@PostMapping("/single")
public Result<Void> registerSingle(@NotNull(message = "单个注册") @Valid )
} }

View File

@@ -1,6 +1,7 @@
package com.xiang.core.quartz.api; package com.xiang.core.quartz.api;
import com.xiang.core.quartz.model.JobConfigDO; import com.xiang.core.quartz.model.JobConfigDO;
import com.xiang.core.quartz.model.JobDefinition;
import java.util.List; import java.util.List;
@@ -12,4 +13,6 @@ public interface AdminJobClient {
List<JobConfigDO> fetchJobByAppName(String appName); List<JobConfigDO> fetchJobByAppName(String appName);
List<JobConfigDO> fetchJobByAppNameAndVersion(String appName, Integer version); List<JobConfigDO> fetchJobByAppNameAndVersion(String appName, Integer version);
void registerJob(JobDefinition jobDefinition);
} }

View File

@@ -5,12 +5,14 @@ import com.alibaba.fastjson2.JSONObject;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.xiang.core.quartz.model.JobConfigDO; import com.xiang.core.quartz.model.JobConfigDO;
import com.xiang.core.quartz.model.JobDefinition;
import com.xiang.core.quartz.model.XxzJobProperties; import com.xiang.core.quartz.model.XxzJobProperties;
import com.xiang.xmc.service.http.helper.HttpHelper; import com.xiang.xmc.service.http.helper.HttpHelper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
@@ -63,4 +65,18 @@ public class HttpAdminJobClientImpl implements AdminJobClient{
} }
return Lists.newArrayList(); 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());
}
} }

View File

@@ -1,6 +1,7 @@
package com.xiang.core.quartz.scanner; package com.xiang.core.quartz.scanner;
import com.xiang.core.quartz.annotation.XxzJob; 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.holder.JobDefinitionHolder;
import com.xiang.core.quartz.model.JobDefinition; import com.xiang.core.quartz.model.JobDefinition;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -26,6 +27,8 @@ public class JobScanner implements SmartInitializingSingleton {
@Autowired @Autowired
private ApplicationContext applicationContext; private ApplicationContext applicationContext;
@Autowired
private AdminJobClient adminJobClient;
@Override @Override
public void afterSingletonsInstantiated() { public void afterSingletonsInstantiated() {
@@ -50,9 +53,8 @@ public class JobScanner implements SmartInitializingSingleton {
job.setDistributed(xxzJob.distributed()); job.setDistributed(xxzJob.distributed());
job.setBean(bean); job.setBean(bean);
job.setMethod(method); job.setMethod(method);
// job.setEnabled();
// job.setCron(xxzJob.cron());
JobDefinitionHolder.register(job); JobDefinitionHolder.register(job);
adminJobClient.registerJob(job);
} }
} }
} }