|
@@ -320,6 +320,8 @@ public class TaskService {
|
|
log.info("启动中的弹性伸缩数量为:{}",mqEcsList.size());
|
|
log.info("启动中的弹性伸缩数量为:{}",mqEcsList.size());
|
|
HashMap<String,MqQueueConfig> queueMap = queueConfigService.getQueueMap();
|
|
HashMap<String,MqQueueConfig> queueMap = queueConfigService.getQueueMap();
|
|
HashMap<Integer,MqScalingConfig> scalingMap = mqScalingConfigService.getIdMap();
|
|
HashMap<Integer,MqScalingConfig> scalingMap = mqScalingConfigService.getIdMap();
|
|
|
|
+
|
|
|
|
+
|
|
for (MqEcs mqEcs : mqEcsList) {
|
|
for (MqEcs mqEcs : mqEcsList) {
|
|
if(StringUtils.isBlank(mqEcs.getEcsName()) || StringUtils.isBlank(mqEcs.getQueueName())){
|
|
if(StringUtils.isBlank(mqEcs.getEcsName()) || StringUtils.isBlank(mqEcs.getQueueName())){
|
|
continue;
|
|
continue;
|
|
@@ -333,6 +335,13 @@ public class TaskService {
|
|
long count = between/60;
|
|
long count = between/60;
|
|
boolean flag = delList.stream().anyMatch(e -> e.getMqEcs().getEcsName().equals(mqEcs.getEcsName()));
|
|
boolean flag = delList.stream().anyMatch(e -> e.getMqEcs().getEcsName().equals(mqEcs.getEcsName()));
|
|
if(between >= mqQueueConfig.getStopScalingTime() + 60 * count && !flag){
|
|
if(between >= mqQueueConfig.getStopScalingTime() + 60 * count && !flag){
|
|
|
|
+ List<MqSendLog> mqSendLogs = configLogsMap.get(mqQueueConfig.getId());
|
|
|
|
+ MqMsg mqMsg = mqMsgMap.get(mqEcs.getQueueName());
|
|
|
|
+ Integer notModelingCount = mqMsg.getConsumers() - mqMsg.getMessages_unacknowledged() - mqMsg.getMessages_ready();
|
|
|
|
+ if(mqSendLogs.size() - notModelingCount + mqQueueConfig.getScalingThreshold() >0 ){
|
|
|
|
+ log.info("待计算数量:{}大于空闲服务数量:{},不关闭",mqSendLogs.size(),notModelingCount);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
log.info("checkDelEcs-实例开启{}时间大于{}分钟,开始关闭:{}",between,mqQueueConfig.getStopScalingTime(),mqEcs.getEcsName());
|
|
log.info("checkDelEcs-实例开启{}时间大于{}分钟,开始关闭:{}",between,mqQueueConfig.getStopScalingTime(),mqEcs.getEcsName());
|
|
DelEcsVo vo = new DelEcsVo(mqEcs,scalingMap.get(mqQueueConfig.getScalingConfigId()),null);
|
|
DelEcsVo vo = new DelEcsVo(mqEcs,scalingMap.get(mqQueueConfig.getScalingConfigId()),null);
|
|
delList.offer(vo);
|
|
delList.offer(vo);
|