fix ConfigModifyVerifyReqDTO

pull/776/head
yewei 3 years ago
parent cfd3f01c14
commit b603d54951

@ -78,7 +78,7 @@ public class ConfigController {
modifySaveReqDTO.setCorePoolSize(config.getCoreSize()); modifySaveReqDTO.setCorePoolSize(config.getCoreSize());
modifySaveReqDTO.setMaximumPoolSize(config.getMaxSize()); modifySaveReqDTO.setMaximumPoolSize(config.getMaxSize());
modifySaveReqDTO.setModifyUser(UserContext.getUserName()); modifySaveReqDTO.setModifyUser(UserContext.getUserName());
modifySaveReqDTO.setModifyAll(StringUtil.isNotBlank(identify) ? EnableEnum.NO.getIntCode() : EnableEnum.YES.getIntCode()); modifySaveReqDTO.setModifyAll(StringUtil.isEmpty(identify) ? true : false);
modifySaveReqDTO.setInstanceId(identify); modifySaveReqDTO.setInstanceId(identify);
modifySaveReqDTO.setType(ConfigModifyTypeConstants.THREAD_POOL_INSTANCE); modifySaveReqDTO.setType(ConfigModifyTypeConstants.THREAD_POOL_INSTANCE);
configModifyVerifyServiceChoose.choose(modifySaveReqDTO.getType()).saveConfigModifyApplication(modifySaveReqDTO); configModifyVerifyServiceChoose.choose(modifySaveReqDTO.getType()).saveConfigModifyApplication(modifySaveReqDTO);

@ -73,7 +73,7 @@ public class HisConfigVerifyInfo {
/** /**
* weather modify all thread pool instances * weather modify all thread pool instances
*/ */
private Integer modifyAll = 0; private Boolean modifyAll = false;
/** /**
* gmtCreate * gmtCreate

@ -70,5 +70,5 @@ public class ThreadPoolAdapterReqDTO {
/** /**
* weather Modify all instances * weather Modify all instances
*/ */
private Integer modifyAll; private Boolean modifyAll;
} }

@ -39,7 +39,7 @@ public class ConfigModifySaveReqDTO {
/** /**
* weather modify all instances * weather modify all instances
*/ */
private Integer modifyAll = EnableEnum.NO.getIntCode(); private Boolean modifyAll = false;
/** /**
* TenantId * TenantId

@ -17,10 +17,11 @@
package cn.hippo4j.config.model.biz.threadpool; package cn.hippo4j.config.model.biz.threadpool;
import cn.hippo4j.common.model.ThreadPoolParameterInfo; import com.fasterxml.jackson.annotation.JsonAlias;
import cn.hippo4j.config.model.biz.adapter.ThreadPoolAdapterReqDTO;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* config modify verify dto * config modify verify dto
*/ */
@ -37,28 +38,96 @@ public class ConfigModifyVerifyReqDTO {
*/ */
private Integer type; private Integer type;
/**
* Tenant id
*/
private String tenantId;
/**
* item id
*/
private String itemId;
/** /**
* instance id * instance id
*/ */
private String instanceId; private String instanceId;
/**
* Thread-pool id
*/
@JsonAlias("threadPoolId")
private String tpId;
/**
* weather modify all instances
*/
private Boolean modifyAll;
/**
* Client address list
*/
private List<String> clientAddressList;
/** /**
* weather accept config modification * weather accept config modification
*/ */
private Boolean accept; private Boolean accept;
/** /**
* thread pool parameter info * Core pool size
*/ */
private ThreadPoolParameterInfo threadPoolParameterInfo; private Integer corePoolSize;
/** /**
* web thread pool req dto * Maximum pool size
*/ */
private WebThreadPoolReqDTO webThreadPoolReqDTO; private Integer maximumPoolSize;
/** /**
* thread pool adapter req dto * Queue type
*/ */
private ThreadPoolAdapterReqDTO threadPoolAdapterReqDTO; private Integer queueType;
/**
* Capacity
*/
private Integer capacity;
/**
* Keep alive time
*/
private Integer keepAliveTime;
/**
* Execute time out
*/
private Long executeTimeOut;
/**
* Rejected type
*/
private Integer rejectedType;
/**
* Is alarm
*/
private Integer isAlarm;
/**
* Capacity alarm
*/
private Integer capacityAlarm;
/**
* Liveness alarm
*/
@JsonAlias("activeAlarm")
private Integer livenessAlarm;
/**
* Allow core thread timeout
*/
private Integer allowCoreThreadTimeOut;
} }

@ -1,57 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package cn.hippo4j.config.model.biz.threadpool;
import lombok.Data;
import java.util.List;
@Data
public class WebThreadPoolReqDTO {
/**
* Thread-pool id
*/
private String tenantId;
/**
* Item id
*/
private String itemId;
/**
* Core pool size
*/
private Integer corePoolSize;
/**
* Maximum pool size
*/
private Integer maximumPoolSize;
/**
* Keep alive time
*/
private Integer keepAliveTime;
/**
* weather modify all instances
*/
private Integer modifyAll;
}

@ -18,6 +18,8 @@
package cn.hippo4j.config.service.biz.impl; package cn.hippo4j.config.service.biz.impl;
import cn.hippo4j.common.enums.VerifyEnum; import cn.hippo4j.common.enums.VerifyEnum;
import cn.hippo4j.common.model.InstanceInfo;
import cn.hippo4j.common.toolkit.ConditionUtil;
import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.JSONUtil;
import cn.hippo4j.common.toolkit.UserContext; import cn.hippo4j.common.toolkit.UserContext;
import cn.hippo4j.config.mapper.HisConfigVerifyMapper; import cn.hippo4j.config.mapper.HisConfigVerifyMapper;
@ -26,16 +28,24 @@ import cn.hippo4j.config.model.biz.threadpool.ConfigModifySaveReqDTO;
import cn.hippo4j.config.model.biz.threadpool.ConfigModifyVerifyReqDTO; import cn.hippo4j.config.model.biz.threadpool.ConfigModifyVerifyReqDTO;
import cn.hippo4j.config.service.biz.ConfigModifyVerifyService; import cn.hippo4j.config.service.biz.ConfigModifyVerifyService;
import cn.hippo4j.config.toolkit.BeanUtil; import cn.hippo4j.config.toolkit.BeanUtil;
import cn.hippo4j.discovery.core.BaseInstanceRegistry;
import cn.hippo4j.discovery.core.Lease;
import cn.hutool.core.text.StrBuilder;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
public abstract class AbstractConfigModifyVerifyService implements ConfigModifyVerifyService { public abstract class AbstractConfigModifyVerifyService implements ConfigModifyVerifyService {
@Resource @Resource
protected HisConfigVerifyMapper hisConfigVerifyMapper; protected HisConfigVerifyMapper hisConfigVerifyMapper;
@Resource
private BaseInstanceRegistry baseInstanceRegistry;
@Override @Override
public void saveConfigModifyApplication(ConfigModifySaveReqDTO reqDTO) { public void saveConfigModifyApplication(ConfigModifySaveReqDTO reqDTO) {
HisConfigVerifyInfo hisConfigVerifyInfo = BeanUtil.convert(reqDTO, HisConfigVerifyInfo.class); HisConfigVerifyInfo hisConfigVerifyInfo = BeanUtil.convert(reqDTO, HisConfigVerifyInfo.class);
@ -66,12 +76,33 @@ public abstract class AbstractConfigModifyVerifyService implements ConfigModifyV
hisConfigVerifyMapper.update(null, updateWrapper); hisConfigVerifyMapper.update(null, updateWrapper);
reqDTO.setClientAddressList(getClientAddress(reqDTO));
updateThreadPoolParameter(reqDTO); updateThreadPoolParameter(reqDTO);
} }
/**
* get client address according to weather modifyAll
* @param reqDTO
* @return
*/
private List<String> getClientAddress(ConfigModifyVerifyReqDTO reqDTO) {
List<String> clientAddressList = new ArrayList<>();
ConditionUtil
.condition(reqDTO.getModifyAll(),
() -> {
List<Lease<InstanceInfo>> leases = baseInstanceRegistry.listInstance(reqDTO.getItemId());
leases.stream()
.forEach(lease -> clientAddressList.add(StrBuilder.create(lease.getHolder().getHostName(), ":", lease.getHolder().getPort()).toString()));
},
() -> clientAddressList.add(reqDTO.getInstanceId().split("_")[0]));
return clientAddressList;
}
/** /**
* update thread pool parameter * update thread pool parameter
* @param reqDTO * @param reqDTO
*/ */
protected abstract void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO); protected abstract void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO);
} }

@ -39,10 +39,9 @@ public class AdapterThreadPoolConfigModifyVerifyServiceImpl extends AbstractConf
@Override @Override
protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) { protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) {
ThreadPoolAdapterReqDTO threadPoolAdapterReqDTO = reqDTO.getThreadPoolAdapterReqDTO(); for (String each : reqDTO.getClientAddressList()) {
for (String each : threadPoolAdapterReqDTO.getClientAddressList()) {
String urlString = StrBuilder.create("http://", each, "/adapter/thread-pool/update").toString(); String urlString = StrBuilder.create("http://", each, "/adapter/thread-pool/update").toString();
HttpUtil.post(urlString, JSONUtil.toJSONString(threadPoolAdapterReqDTO), HTTP_EXECUTE_TIMEOUT); HttpUtil.post(urlString, JSONUtil.toJSONString(reqDTO), HTTP_EXECUTE_TIMEOUT);
} }
} }
} }

@ -41,7 +41,7 @@ public class ThreadPoolInstanceConfigModifyVerifyServiceImpl extends AbstractCon
@Override @Override
protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) { protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) {
ConfigAllInfo config = BeanUtil.convert(reqDTO.getThreadPoolParameterInfo(), ConfigAllInfo.class); ConfigAllInfo config = BeanUtil.convert(reqDTO, ConfigAllInfo.class);
configService.insertOrUpdate(reqDTO.getInstanceId(), true, config); configService.insertOrUpdate(reqDTO.getInstanceId(), true, config);
} }

@ -42,8 +42,9 @@ public class ThreadPoolManageConfigModifyVerifyServiceImpl extends AbstractConfi
@Override @Override
public void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) { public void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) {
ThreadPoolParameterInfo poolParameterInfo = reqDTO.getThreadPoolParameterInfo(); ThreadPoolSaveOrUpdateReqDTO saveOrUpdateReqDTO = BeanUtil.convert(reqDTO, ThreadPoolSaveOrUpdateReqDTO.class);
ThreadPoolSaveOrUpdateReqDTO saveOrUpdateReqDTO = BeanUtil.convert(poolParameterInfo, ThreadPoolSaveOrUpdateReqDTO.class); saveOrUpdateReqDTO.setCoreSize(reqDTO.getCorePoolSize());
saveOrUpdateReqDTO.setMaxSize(reqDTO.getMaximumPoolSize());
threadPoolService.saveOrUpdateThreadPoolConfig(null, saveOrUpdateReqDTO); threadPoolService.saveOrUpdateThreadPoolConfig(null, saveOrUpdateReqDTO);
} }

@ -95,7 +95,7 @@ public class ThreadPoolServiceImpl implements ThreadPoolService {
modifySaveReqDTO.setCorePoolSize(reqDTO.getCoreSize()); modifySaveReqDTO.setCorePoolSize(reqDTO.getCoreSize());
modifySaveReqDTO.setMaximumPoolSize(reqDTO.getMaxSize()); modifySaveReqDTO.setMaximumPoolSize(reqDTO.getMaxSize());
modifySaveReqDTO.setModifyUser(UserContext.getUserName()); modifySaveReqDTO.setModifyUser(UserContext.getUserName());
modifySaveReqDTO.setModifyAll(EnableEnum.NO.getIntCode()); modifySaveReqDTO.setModifyAll(false);
modifySaveReqDTO.setType(ConfigModifyTypeConstants.THREAD_POOL_MANAGER); modifySaveReqDTO.setType(ConfigModifyTypeConstants.THREAD_POOL_MANAGER);
configModifyVerifyServiceChoose.choose(modifySaveReqDTO.getType()).saveConfigModifyApplication(modifySaveReqDTO); configModifyVerifyServiceChoose.choose(modifySaveReqDTO.getType()).saveConfigModifyApplication(modifySaveReqDTO);
} }

@ -18,24 +18,12 @@
package cn.hippo4j.config.service.biz.impl; package cn.hippo4j.config.service.biz.impl;
import cn.hippo4j.common.constant.ConfigModifyTypeConstants; import cn.hippo4j.common.constant.ConfigModifyTypeConstants;
import cn.hippo4j.common.enums.EnableEnum;
import cn.hippo4j.common.model.InstanceInfo;
import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.JSONUtil;
import cn.hippo4j.common.toolkit.StringUtil;
import cn.hippo4j.config.model.biz.threadpool.ConfigModifyVerifyReqDTO; import cn.hippo4j.config.model.biz.threadpool.ConfigModifyVerifyReqDTO;
import cn.hippo4j.config.model.biz.threadpool.WebThreadPoolReqDTO;
import cn.hippo4j.discovery.core.BaseInstanceRegistry;
import cn.hippo4j.discovery.core.Lease;
import cn.hutool.core.text.StrBuilder; import cn.hutool.core.text.StrBuilder;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static cn.hippo4j.common.constant.Constants.HTTP_EXECUTE_TIMEOUT; import static cn.hippo4j.common.constant.Constants.HTTP_EXECUTE_TIMEOUT;
@ -43,9 +31,6 @@ import static cn.hippo4j.common.constant.Constants.HTTP_EXECUTE_TIMEOUT;
@Service @Service
public class WebThreadPoolConfigModifyVerifyServiceImpl extends AbstractConfigModifyVerifyService { public class WebThreadPoolConfigModifyVerifyServiceImpl extends AbstractConfigModifyVerifyService {
@Resource
private BaseInstanceRegistry baseInstanceRegistry;
@Override @Override
public Integer type() { public Integer type() {
return ConfigModifyTypeConstants.WEB_THREAD_POOL; return ConfigModifyTypeConstants.WEB_THREAD_POOL;
@ -53,20 +38,9 @@ public class WebThreadPoolConfigModifyVerifyServiceImpl extends AbstractConfigMo
@Override @Override
protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) { protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) {
WebThreadPoolReqDTO webThreadPoolReqDTO = reqDTO.getWebThreadPoolReqDTO(); for (String each : reqDTO.getClientAddressList()) {
List<String> clientAddressList = new ArrayList<>();
// modify all instances
if (EnableEnum.YES.getIntCode() == webThreadPoolReqDTO.getModifyAll()) {
List<Lease<InstanceInfo>> leases = baseInstanceRegistry.listInstance(webThreadPoolReqDTO.getItemId());
leases.stream()
.forEach(lease -> clientAddressList.add(StrBuilder.create(lease.getHolder().getHostName(), ":", lease.getHolder().getPort()).toString()));
} else {
clientAddressList.add(reqDTO.getInstanceId().split("_")[0]);
}
for (String each : clientAddressList) {
String urlString = StrBuilder.create("http://", each, "/web/update/pool").toString(); String urlString = StrBuilder.create("http://", each, "/web/update/pool").toString();
HttpUtil.post(urlString, JSONUtil.toJSONString(webThreadPoolReqDTO), HTTP_EXECUTE_TIMEOUT); HttpUtil.post(urlString, JSONUtil.toJSONString(reqDTO), HTTP_EXECUTE_TIMEOUT);
} }
} }
} }

Loading…
Cancel
Save