dengsixing 3 سال پیش
والد
کامیت
8b72cd2c25

+ 9 - 8
src/main/java/com/fdkankan/repair/listener/RabbitMqListener.java

@@ -39,14 +39,15 @@ public class RabbitMqListener {
 //        concurrency = "${maxThread.modeling.modeling-pre}"
     )
     public void buildScenePreHandler(Channel channel, Message message) throws Exception {
-            String correlationId = message.getMessageProperties().getCorrelationId();
-            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
-            log.info("场景升级开始,队列名:{},id:{},消息体:{}", upgradeToV4, correlationId, msg);
-            long sceneProId = Long.parseLong(msg);
-            //迁移数据
-            sceneUpgradeToV4Service.upgrade(sceneProId);
-            log.info("场景升级结束,队列名:{},id:{}", upgradeToV4, correlationId);
-            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+        Object correlation = message.getMessageProperties().getHeader("spring_returned_message_correlation");
+        String correlationId = (String) correlation;
+        String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+        log.info("场景升级开始,队列名:{},id:{},消息体:{}", upgradeToV4, correlationId, msg);
+        long sceneProId = Long.parseLong(msg);
+        //迁移数据
+        sceneUpgradeToV4Service.upgrade(sceneProId);
+        log.info("场景升级结束,队列名:{},id:{}", upgradeToV4, correlationId);
+        channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
     }
 
 

+ 6 - 2
src/main/java/com/fdkankan/repair/service/impl/SceneUpgradeToV4Service.java

@@ -482,16 +482,20 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
             sceneRepairLog.setConsumTime(consumTime);
             sceneRepairLogService.updateById(sceneRepairLog);
 
-            this.updateProgress(num, 100, ProgressStatus.SUCCESS.code());
-
             // 调用v3接口回写数据
             fdkankanMiniClient.upgradeToV4ResultSync(fkankanMiniHost,
                 RequestSceneProV4.builder().id(sceneProId).webSite(scenePro.getWebSite()).build(),
                 new FdkkMiniReqSuccessCallback(), new FdkkMiniReqErrorCallback()
             );
 
+            this.updateProgress(num, 100, ProgressStatus.SUCCESS.code());
+
         }catch (Exception e){
             log.error(e.getMessage(), e);
+
+            //完成数据库操作更新进度条为0,状态失败
+            this.updateProgress(num, 0, ProgressStatus.FAIL.code());
+
             //记录日志
             consumTime = Calendar.getInstance().getTimeInMillis() - startTime;
             sceneRepairLog.setState(2);