feat:环境隔离
This commit is contained in:
@@ -11,8 +11,8 @@ import java.util.List;
|
||||
*/
|
||||
public interface AdminJobClient {
|
||||
|
||||
List<JobConfigDO> fetchJobByAppName(String appName);
|
||||
List<JobConfigDO> fetchJobByAppNameAndVersion(String appName, Integer version);
|
||||
List<JobConfigDO> fetchJobByAppName(String appName, Long namespace);
|
||||
List<JobConfigDO> fetchJobByAppNameAndVersion(String appName, Integer version, Long namespace);
|
||||
|
||||
void registerJob(JobDefinition jobDefinition, String className);
|
||||
}
|
||||
|
||||
@@ -30,11 +30,12 @@ public class HttpAdminJobClientImpl implements AdminJobClient {
|
||||
private static final BaseHttpHelp httpHelp = HttpHelperFactory.createQuartzHttp();
|
||||
|
||||
@Override
|
||||
public List<JobConfigDO> fetchJobByAppName(String appName) {
|
||||
public List<JobConfigDO> fetchJobByAppName(String appName, Long namespace) {
|
||||
String address = xxzJobProperties.getAdminAddress();
|
||||
address = address + "/open/quartz/fetch/list";
|
||||
Map<String, String> params = Maps.newHashMap();
|
||||
params.put("appName", appName);
|
||||
params.put("env", String.valueOf(namespace));
|
||||
String resp = httpHelp.doGet(address, params);
|
||||
if (StringUtils.isNotBlank(resp)) {
|
||||
JSONObject jsonObject = JSON.parseObject(resp);
|
||||
@@ -49,11 +50,12 @@ public class HttpAdminJobClientImpl implements AdminJobClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JobConfigDO> fetchJobByAppNameAndVersion(String appName, Integer version) {
|
||||
public List<JobConfigDO> fetchJobByAppNameAndVersion(String appName, Integer version, Long namespace) {
|
||||
String address = xxzJobProperties.getAdminAddress();
|
||||
address = address + "/open/quartz/fetch/listByVersion";
|
||||
Map<String, String> params = Maps.newHashMap();
|
||||
params.put("appName", appName);
|
||||
params.put("env", String.valueOf(namespace));
|
||||
params.put("currVersion", String.valueOf(version));
|
||||
String resp = httpHelp.doGet(address, params);
|
||||
|
||||
@@ -78,6 +80,7 @@ public class HttpAdminJobClientImpl implements AdminJobClient {
|
||||
request.setCron(jobDefinition.getCron());
|
||||
request.setClazz(className);
|
||||
request.setMethod(jobDefinition.getMethod().getName());
|
||||
request.setEnv(xxzJobProperties.getNamespace());
|
||||
String address = xxzJobProperties.getAdminAddress();
|
||||
address = address + "/open/quartz/register/single";
|
||||
httpHelp.doPost(address, JSON.toJSONString(request));
|
||||
|
||||
@@ -35,7 +35,7 @@ public class JobBootstrap implements ApplicationRunner {
|
||||
@Override
|
||||
public void run(ApplicationArguments args) {
|
||||
// 启动时动态获取此app下面的数据库配置好的定时任务 用于管理cron和开关
|
||||
List<JobConfigDO> jobConfigDOS = adminJobClient.fetchJobByAppName(xxzJobProperties.getAppName());
|
||||
List<JobConfigDO> jobConfigDOS = adminJobClient.fetchJobByAppName(xxzJobProperties.getAppName(), xxzJobProperties.getNamespace());
|
||||
if (CollectionUtils.isEmpty(jobConfigDOS)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -42,4 +42,9 @@ public class TaskRegisterRequest {
|
||||
* 方法
|
||||
*/
|
||||
private String method;
|
||||
|
||||
/**
|
||||
* 环境
|
||||
*/
|
||||
private Long env;
|
||||
}
|
||||
|
||||
@@ -25,4 +25,9 @@ public class XxzJobProperties {
|
||||
* 调度中心地址
|
||||
*/
|
||||
private String adminAddress;
|
||||
|
||||
/**
|
||||
* 命名空间
|
||||
*/
|
||||
private Long namespace;
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public class JobConfigRefreshTask {
|
||||
private JobScheduler jobScheduler;
|
||||
@Scheduled(fixedDelay = 5000)
|
||||
public void refresh() {
|
||||
List<JobConfigDO> jobConfigDOS = adminJobClient.fetchJobByAppName(xxzJobProperties.getAppName());
|
||||
List<JobConfigDO> jobConfigDOS = adminJobClient.fetchJobByAppName(xxzJobProperties.getAppName(), xxzJobProperties.getNamespace());
|
||||
|
||||
for (JobConfigDO jobConfigDO : jobConfigDOS) {
|
||||
JobDefinition jobDefinition = JobDefinitionHolder.getOne(jobConfigDO.getBeanName());
|
||||
|
||||
Reference in New Issue
Block a user