xiewj пре 1 година
родитељ
комит
a6ceb35e15

+ 57 - 0
sxz-base/src/main/java/com/fdkk/sxz/util/SpringContextUtil.java

@@ -0,0 +1,57 @@
+package com.fdkk.sxz.util;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+import java.util.Locale;
+
+/**
+ * @author Xiewj
+ * @date 2023/1/29
+ */
+@Component
+public class SpringContextUtil implements ApplicationContextAware {
+
+   private static ApplicationContext context = null;
+
+   /* (non Javadoc)
+    * @Title: setApplicationContext
+    * @Description: spring获取bean工具类
+    * @param applicationContext
+    * @throws BeansException
+    * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
+    */
+   @Override
+   public void setApplicationContext(ApplicationContext applicationContext)
+           throws BeansException {
+      context = applicationContext;
+   }
+
+   // 传入线程中
+   public static <T> T getBean(String beanName) {
+      return (T) context.getBean(beanName);
+   }
+
+   // 国际化使用
+   public static String getMessage(String key) {
+      return context.getMessage(key, null, Locale.getDefault());
+   }
+   /**
+    * 获取当前的环境配置,无配置返回null
+    * @return 当前的环境配置
+    */
+   public static String[] getActiveProfiles() {
+      return context.getEnvironment().getActiveProfiles();
+   }
+
+   /**
+    * 获取当前的环境配置,当有多个环境配置时,只获取第一个
+    * @return 当前的环境配置
+    */
+   public static String getActiveProfile(){
+      final String[] activeProfiles = getActiveProfiles();
+      return  activeProfiles!=null&&activeProfiles.length>0 ? activeProfiles[0] : "uat";
+   }
+}

+ 22 - 0
sxz-base/src/main/java/com/fdkk/sxz/util/test.java

@@ -0,0 +1,22 @@
+package com.fdkk.sxz.util;
+
+import cn.hutool.core.date.TimeInterval;
+import cn.hutool.core.lang.Console;
+import cn.hutool.core.thread.ThreadUtil;
+
+/**
+ * @author Xiewj
+ * @date 2023/10/27
+ */
+public class test {
+    public static void main(String[] args) {
+
+        final TimeInterval timer = new TimeInterval();
+// 分组1
+        timer.start("1");
+        ThreadUtil.sleep(800);
+
+        Console.log("Timer 1 took {} ms", timer.intervalDay("1"));
+
+    }
+}

+ 11 - 0
sxz-core/src/main/java/com/fdkk/sxz/other/listener/Model3dBuild.java

@@ -1,6 +1,7 @@
 package com.fdkk.sxz.other.listener;
 
 
+import cn.hutool.core.date.TimeInterval;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -97,10 +98,20 @@ public class Model3dBuild {
         boolean over = false;
         int times = 0;
         //是否处理obj文件
+        final TimeInterval timer = new TimeInterval();
+        timer.start(str.getName());
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("name", str.getName());
         jsonObject.put("taskType", "localDataUpload");
         while (true) {
+            long l = timer.intervalDay(str.getName());
+            if (l>0){
+                log.info("渲染超时--{},={}",str.getName(),l);
+                over = true;
+                modelUploadOfflineEntity.setStatus(-1);
+                modelUploadOfflineService.updateById(modelUploadOfflineEntity);
+            }
+
             String checkResult = OkHttpUtils.httpPostJson(buildUrl + "check", jsonObject.toJSONString());
             Thread.sleep(2000L);
             JSONObject checkJson = JSONObject.parseObject(checkResult);

+ 13 - 11
sxz-core/src/main/java/com/fdkk/sxz/other/mq/TopicRabbitConfig.java

@@ -1,5 +1,6 @@
 package com.fdkk.sxz.other.mq;
 
+import com.fdkk.sxz.util.SpringContextUtil;
 import org.springframework.amqp.core.*;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -13,38 +14,39 @@ import java.util.Map;
 @Configuration
 public class TopicRabbitConfig {
 
+    private static String active=SpringContextUtil.getActiveProfile();
 
-    public final static String CHANGE = "topic.chang.prod";
+    public final static String CHANGE = "topic.chang."+active;
     //灯光预览
-    public final static String LIGHT = "topic.light.prod";
+    public final static String LIGHT = "topic.light."+active;
 
     ////图片渲染
     //public final static String MODEL_CREAT_THUM = "topic.modelCreatThum";
 
     //上传模型
-    public final static String MODEL = "topic.model.prod";
+    public final static String MODEL = "topic.model."+active;
     //上传模型处理业务
-    public final static String MODEL_BIZ = "topic.modelBiz.prod";
+    public final static String MODEL_BIZ = "topic.modelBiz."+active;
     // 线下版本使用队列
-    public final static String MODEL_BIZ_3D = "topic.3dModelBiz.prod";
+    public final static String MODEL_BIZ_3D = "topic.3dModelBiz."+active;
     //"更新模型库,syncmodel
-    public final static String SYNCMODEL = "topic.syncmodel.prod";
+    public final static String SYNCMODEL = "topic.syncmodel."+active;
 
     //上传后提交模型
-    public final static String ADDMODEL = "topic.addModel.prod";
+    public final static String ADDMODEL = "topic.addModel."+active;
     //上传后提交模型3D端
-    public final static String ADDMODELTO3D = "topic.addmodelto3d.prod";
+    public final static String ADDMODELTO3D = "topic.addmodelto3d."+active;
     //处理
-    public final static String MVIEW = "delay.mview.prod";
+    public final static String MVIEW = "delay.mview."+active;
 
     /**
      * 普通交换机
      */
-    public final static String TOPICE = "topicExchange.prod";
+    public final static String TOPICE = "topicExchange."+active;
     /**
      * 延迟消息交换机
      */
-    public final static String DELAY_EXCHANGE = "delay.exchange.prod";
+    public final static String DELAY_EXCHANGE = "delay.exchange."+active;
 
     @Bean
     public CustomExchange delayMessageExchange() {