Jelajahi Sumber

Merge branch 'hotfix-128G-dsx' into test

dengsixing 1 tahun lalu
induk
melakukan
951434e81a

+ 20 - 9
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -34,6 +34,7 @@ import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
 import com.fdkankan.rabbitmq.bean.BuildSceneResultMqMessage;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.rubbersheeting.ScalingService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -90,6 +91,9 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
 
     @Value("${4dkk.laserService.dir}")
     private String laserDir;
+    @Value("${scaling.rule.extend.ari:#{null}}")
+    private String scalingExtendAri;
+
 
     @Autowired
     private RabbitMqProducer mqProducer;
@@ -139,10 +143,13 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
     private ISceneBuildProcessLogService sceneBuildProcessLogService;
     @Autowired
     private ISceneColdStorageService sceneColdStorageService;
+    @Autowired
+    private ScalingService scalingService;
+    @Autowired
+    private RabbitMqProducer rabbitMqProducer;
 
     @Override
-    public void buildScenePre(BuildSceneCallMessage message) throws Exception{
-        boolean success = false;
+    public void buildScenePre(BuildSceneCallMessage message){
         String num = message.getSceneNum();
         try {
             //重新计算时需要删除文件夹,否知使用缓存
@@ -196,17 +203,21 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
 
             message.getBuildContext().put("cameraType",message.getCameraType());
 
-            // 判断企业是否配置了弹性伸缩
-            if (message.getFlexibility() == 0) {
+            //查询是否超过比例50%,如果超过,则启动128G服务器弹性伸缩
+            Float maxRate = fdageJson.getFloat("maxRate");
+            if(Objects.nonNull(maxRate) && maxRate > 50){
                 //发送mq,就进行计算
-                mqProducer.sendByWorkQueue(queueModelingCall, message);
-            } else {
+                mqProducer.sendByWorkQueue(queueModelingCall.concat("-128G"), message);
+                int mqNum = rabbitMqProducer.getMessageCount(queueModelingCall.concat("-128G"));
+                if(mqNum > 0){
+                    String result = scalingService.createEcs(scalingExtendAri);
+                    log.info("createEcs-result:{}", result);
+                }
+            }else{
                 //发送mq,就进行计算
-                mqProducer.sendByWorkQueue(singleModelingCall, message);
+                mqProducer.sendByWorkQueue(queueModelingCall, message);
             }
 
-            success = true;
-
             log.info("场景计算资源准备结束,场景码:{}", message.getSceneNum());
 
         }catch (Exception e){