|
@@ -5,16 +5,15 @@ import cn.hutool.core.io.FileUtil;
|
|
|
import cn.hutool.core.io.watch.WatchMonitor;
|
|
|
import cn.hutool.core.io.watch.Watcher;
|
|
|
import cn.hutool.core.lang.Console;
|
|
|
-import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.fdkankan.common.constant.CommonOperStatus;
|
|
|
+import com.fdkankan.common.constant.ErrorCode;
|
|
|
import com.fdkankan.common.constant.ModelingBuildStatus;
|
|
|
+import com.fdkankan.common.exception.BusinessException;
|
|
|
import com.fdkankan.common.util.CmdUtils;
|
|
|
import com.fdkankan.common.util.FileUtils;
|
|
|
-import com.fdkankan.model.constants.ConstantFilePath;
|
|
|
import com.fdkankan.model.utils.ComputerUtil;
|
|
|
import com.fdkankan.model.utils.CreateObjUtil;
|
|
|
import com.fdkankan.modeling.bean.BuildSceneResultBean;
|
|
@@ -33,7 +32,6 @@ import com.fdkankan.rabbitmq.util.RabbitMqProducer;
|
|
|
import com.fdkankan.redis.util.RedisLockUtil;
|
|
|
import com.fdkankan.redis.util.RedisUtil;
|
|
|
import com.rabbitmq.client.Channel;
|
|
|
-import com.fdkankan.model.constants.SceneBuildProcessType;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.commons.lang3.time.StopWatch;
|
|
@@ -44,6 +42,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
+
|
|
|
import java.io.File;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.nio.file.Path;
|
|
@@ -166,7 +165,6 @@ public class RabbitMqListener {
|
|
|
return buildScene(buildContext,message, buildSceneResult,buildLog);
|
|
|
} catch (Exception e) {
|
|
|
log.error("服务实例:{} 构建异常:", SysConstants.hostName, e);
|
|
|
- e.printStackTrace();
|
|
|
return ModelingBuildStatus.FAILED;
|
|
|
}
|
|
|
});
|
|
@@ -196,8 +194,8 @@ public class RabbitMqListener {
|
|
|
buildSceneResult.setCameraType(message.getCameraType());
|
|
|
buildSceneResult.setBuildStatus(status);
|
|
|
//计算后处理
|
|
|
- afterBuild(message, buildSceneResult, buildLog);
|
|
|
|
|
|
+ afterBuild(message, buildSceneResult, buildLog);
|
|
|
}
|
|
|
|
|
|
private ModelingBuildStatus buildScene(Map<String,Object> buildContext,BuildSceneCallMessage message, BuildSceneResultBean buildSceneResult,BuildLog logRecord) throws Exception{
|
|
@@ -258,8 +256,22 @@ public class RabbitMqListener {
|
|
|
String skyboxType = dataMap.get("skyboxType");
|
|
|
|
|
|
ComputerUtil.createProjectAndDataFile(path,num, splitType, skyboxType,null,null);
|
|
|
+
|
|
|
+ //场景已删除,不启动算法进程
|
|
|
+ log.info("buildScene,已经删除的场景码:{}", JSON.toJSONString(SysConstants.interrupCallingNums));
|
|
|
+ if(SysConstants.interrupCallingNums.contains(num)){
|
|
|
+ SysConstants.interrupCallingNums.remove(num);
|
|
|
+ log.info("场景已被删除,跳出计算,num:{}", num);
|
|
|
+ return ModelingBuildStatus.FAILED;
|
|
|
+ }
|
|
|
+
|
|
|
//计算模型并返回需要上传oss的文件集合
|
|
|
- ComputerUtil.computer(num, path, buildType);
|
|
|
+ SysConstants.callingNum.add(num);
|
|
|
+ try {
|
|
|
+ ComputerUtil.computer(num, path, buildType);
|
|
|
+ }finally {
|
|
|
+ SysConstants.callingNum.remove(num);
|
|
|
+ }
|
|
|
|
|
|
// 检测计算结果文件是否有生成
|
|
|
String resultsPath = path + File.separator + "results" + File.separator;
|
|
@@ -394,8 +406,11 @@ public class RabbitMqListener {
|
|
|
* @param buildStatus
|
|
|
*/
|
|
|
private void sendCallBuildProcessLog(BuildSceneCallMessage message, ModelingBuildStatus buildStatus){
|
|
|
- rabbitMqProducer.sendByWorkQueue(queueModelingProcessLog,
|
|
|
- BuildSceneProcessLogMessage.builder().num(message.getSceneNum()).buildStatus(buildStatus.code()).build());
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("num", message.getSceneNum());
|
|
|
+ jsonObject.put("buildStatus", buildStatus.code());
|
|
|
+ jsonObject.put("batchId", message.getExt().get("batchId"));
|
|
|
+ rabbitMqProducer.sendByWorkQueue(queueModelingProcessLog, jsonObject);
|
|
|
}
|
|
|
|
|
|
private void preBuild(Map<String,Object> buildContext,BuildSceneCallMessage message, BuildLog buildLog) throws BuildException {
|