dengsixing 8 ヶ月 前
コミット
f0da30e856

+ 7 - 0
src/main/java/com/fdkankan/modeling/receiver/RabbitMqListener.java

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.common.constant.ModelingBuildStatus;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.model.utils.ComputerUtil;
+import com.fdkankan.model.utils.CreateObjUtil;
 import com.fdkankan.modeling.bean.BuildSceneResultBean;
 import com.fdkankan.modeling.constants.RedisKey;
 import com.fdkankan.modeling.constants.SysConstants;
@@ -133,6 +134,9 @@ public class RabbitMqListener {
         buildLog.setMessageId(messageId);
         buildLog.setContent(msg);
 
+        //进入计算之前,把上次未关闭的算法杀掉(主要是重启的问题)
+        CreateObjUtil.killMainLoader();
+
         Map<String, Object> ext = buildSceneMessage.getExt();
         if("e57".equals(bizType)){
             this.process4E57(buildSceneMessage,buildLog);
@@ -198,6 +202,9 @@ public class RabbitMqListener {
             } else {
                 status = ModelingBuildStatus.FAILED;
             }
+        }finally {
+            //杀掉算法进程,否则有可能导致上一个超时的算法进程没终止,下一个场景算法进程启动,一台机器有两个算法进程在跑
+            CreateObjUtil.killMainLoader();
         }
         buildLog.setStatus(status.code());
         buildSceneResult.setCameraType(message.getCameraType());